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

  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • the one am radio

    the one am r

    6 Mayıs 2006
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011