SQL Server 2008和/或运算符和括号

SuG*_*uGo 1 sql sql-server select where sql-like

我在使用AND/OR运算符时遇到了一些麻烦.这很容易,但我遇到以下情况有问题:

WHERE      (ID = '111') OR (charge_desc LIKE '%garn%') OR
                      (charge_desc LIKE '%levy%') OR
                      (charge_desc LIKE '%exe%')
Run Code Online (Sandbox Code Playgroud)

基本上,我试图根据ID 111 找到关键字.但是,当前查询发生的情况是,它会根据一堆不同的ID来查找这些关键字.我试图操纵括号,我看到了问题.因为它不能是"111 OR LIKE XYZ ..."但它不能是AND,因为如果你做AND,那么它会根据这三个标准完全找到那个ID.

我希望做ID 111和查找garnlevyexe-不是"和",但它应该是每一个来了,但只针对111的变化.

我希望这是有道理的.我对括号感到满意.

我刚试过这个:

WHERE ID = 111
HAVING garn or levy or exe
Run Code Online (Sandbox Code Playgroud)

请原谅我在那里缺乏语法.:)

Mur*_*nik 5

如果你绝对必须,id = 111那么这是一种and关系,而不是一种or关系.然后,您可以or在其他条件之间拥有一系列运算符:

WHERE ID = '111' AND
      (charge_desc LIKE '%garn%' OR
       charge_desc LIKE '%levy%' OR
       charge_desc LIKE '%exe%')
Run Code Online (Sandbox Code Playgroud)