SQL中的AND或OR子句
我想写这样一个查询:SQL中的AND或OR子句,sql,sql-server,Sql,Sql Server,我想写这样一个查询: SELECT * FROM db WHERE ID = id AND Text != text OR Text = text 我的意思是ID=ID子句和Text!=text子句应与and组合,且应与或与最后一个子句组合。我该怎么做?谢谢 SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text 在组合和以及或 SELECT * FROM db WHERE (ID = id AND Text != t
SELECT * FROM db WHERE ID = id AND Text != text OR Text = text
我的意思是ID=ID
子句和Text!=text
子句应与and组合,且应与或
与最后一个子句组合。我该怎么做?谢谢
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text
在组合和
以及或
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text
使用括号分隔两个子句使用逻辑运算符(和/或):
SELECT *
FROM db
WHERE (ID = id AND TEXT != TEXT)
OR
OR TEXT = TEXT
或者您可以使用以下用例:
SELECT * FROM db where
(CASE WHEN ID = id THEN (CASE WHEN Text != text THEN 1 ELSE 0 END) ELSE 0 end = 1) OR
(CASE WHEN Text = text THEN 1 ELSE 0 END) = 1
试试这个:
选择*FROM db WHERE(ID=ID和Text!=Text)或Text=Text什么是
Text
和Text
?它们在区分大小写的排序规则中是不同的列吗?“如果是这样的话,那似乎令人困惑。”马丁·史密斯,没错,我在考虑连接。显然,这里的情况并非如此。我假设它们是不同的字段,这当然回避了一个问题:为什么有两个字段的名称几乎相同?
SELECT * FROM db WHERE (ID = id AND Text != text) OR Text = text
SELECT * FROM db where
(CASE WHEN ID = id THEN (CASE WHEN Text != text THEN 1 ELSE 0 END) ELSE 0 end = 1) OR
(CASE WHEN Text = text THEN 1 ELSE 0 END) = 1