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

  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009
  • The White House

    The White Ho

    21 Ocak 2006