SORU
6 AĞUSTOS 2009, PERŞEMBE


Mantık Operatör Önceliği SQL: Ve ve Veya

Aşağıdaki iki ifade eşdeğerdir?

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3,4,5) AND some_other_expr

ve

SELECT [...]
FROM [...]
WHERE some_col in (1,2,3) or some_col in (4,5) AND some_other_expr

Bunu doğrulamak için kullanabileceğim doğruluk tablosu falan var mı?

CEVAP
6 AĞUSTOS 2009, PERŞEMBE


And a <=> a1 Or a2 bile Or, yani, üzerinde önceliğe sahiptir

Where a And b 

aynı şey değildir

Where a1 Or a2 And b,

bu gibi İdam olurdu çünkü

Where a1 Or (a2 And b)

ve ne istiyorsanız, onları aynı yapmak için

 Where (a1 Or a2) And b

Burada göstermek için bir örnek:

Declare @x tinyInt = 1
Declare @y tinyInt = 0
Declare @z tinyInt = 0

Select Case When @x=1 OR @y=1 And @z=1 Then 'T' Else 'F' End -- outputs T
Select Case When (@x=1 OR @y=1) And @z=1 Then 'T' Else 'F' End -- outputs F

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009