[英]OR statement isn't working
Sqlserver的新手,我正在做類似的事情
select *
from table1
where field1 IN ('textvalue1','textvalue2') OR field2 IN ('textvalue1','textvalue2')
它根本不起作用...沒有語法錯誤,並且AND
語句工作正常。 我也嘗試將其括在括號中。
根據所有注釋,您一定不能在數據中包含您認為確實有價值的值。 這是其工作的可復制示例。
declare @table table (field1 varchar(64), field2 varchar(64))
insert into @table
values
('a','b'),
('c','d'),
('e','f'), --only row that won't return with logic below
('g','h'),
('i','j')
select *
from @table
where field1 in ('a','c') or field2 in ('h','j')
退貨
+--------+--------+
| field1 | field2 |
+--------+--------+
| a | b |
| c | d |
| g | h |
| i | j |
+--------+--------+
注釋 SQL Server忽略等號運算符的尾隨空格,但是前導空格將失敗。 因此,如果您有前導空格,則可能需要使用LTRIM()
。
declare @table table (field1 varchar(64), field2 varchar(64))
insert into @table
values
('a ','b'),
('c ','d'),
('e ','f'),
('g',' h'),
('i',' j')
select *
from @table
where ltrim(field1) in ('a','c') or ltrim(field2) in ('h','j')
要么將name作為變量傳遞,然后使用“ YYY”,或者如果要使用內部查詢進行獲取,則按如下所述在IN子句中傳遞子查詢。
SELECT *
FROM PERSON
WHERE NAME IN ('jill') OR NAME IN (SELECT NAME FROM PERSON WHERE NAME ='jake');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.