SQL Server OR语句问题

时间:2013-09-09 13:57:16

标签: sql-server where-clause

我正在尝试选择一行,其中C5721_USER_NAME列未以“ccs”开头,或C5721_USER_ORIGIN未以“ccs”开头。

如果以“ccs”开头,我不想要那个列。

这是我的问题:

SELECT * 
FROM T5707_ISSUES 
WHERE (C5721_USER_ORIGIN NOT LIKE '%ccs%' OR C5721_USER_NAME NOT LIKE '%ccs%')
ORDER BY C5707_ISS_ID 

但我的结果是C5721_USER_NAME

cnewman
ctext
ccskym
lmbsiro

4 个答案:

答案 0 :(得分:2)

您必须使用AND

SELECT * 
FROM T5707_ISSUES 
WHERE (C5721_USER_ORIGIN NOT LIKE 'ccs%' AND C5721_USER_NAME NOT LIKE 'ccs%')
ORDER BY C5707_ISS_ID 

此外,要搜索仅starts ccs %的内容,您不必在其前面添加{{1}}。

答案 1 :(得分:1)

请试试这个:

SELECT * 
FROM T5707_ISSUES 
WHERE (C5721_USER_ORIGIN NOT LIKE 'ccs%' and C5721_USER_NAME NOT LIKE 'ccs%')
ORDER BY C5707_ISS_ID 

我已将替换为,因为当您使用OR时,任何具有以这些字符开头的值的列都会出现。

答案 2 :(得分:0)

如果您只希望它搜索不以该值开头的记录,则需要将查询更改为:

SELECT * 
FROM T5707_ISSUES 
WHERE (C5721_USER_ORIGIN NOT LIKE 'ccs%' AND C5721_USER_NAME NOT LIKE 'ccs%')
ORDER BY C5707_ISS_ID 

答案 3 :(得分:0)

你错了逻辑运算符OR而不是AND

SELECT * 
FROM T5707_ISSUES 
WHERE (C5721_USER_ORIGIN NOT LIKE '%ccs%' and C5721_USER_NAME NOT LIKE '%ccs%')
ORDER BY C5707_ISS_ID