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

  • habpsu

    habpsu

    25 Temmuz 2007
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006
  • VitalyzdTv

    VitalyzdTv

    7 AĞUSTOS 2011