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

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • ibebrent

    ibebrent

    23 Temmuz 2007
  • TomSka

    TomSka

    30 Mayıs 2006