Sql server 在where子句中使用大小写表达式时出错
我正在这样做Sql server 在where子句中使用大小写表达式时出错,sql-server,Sql Server,我正在这样做 select * from tabl WHERE ( CASE WHEN tbl.mydate IS NOT NULL THEN tbl.mydate > tbl2.mydate ELSE 1=1 END ) 但得到如下错误 味精102,第15级,状态1,第42行 “>”附近的语法不正确。 味精156,第15级,状态1,第57行 关键字“AS”附近的语法不正确 只需使用常规的和/或逻辑即可 SELECT * FROM tabl WH
select *
from tabl
WHERE (
CASE WHEN tbl.mydate IS NOT NULL
THEN tbl.mydate > tbl2.mydate
ELSE 1=1
END
)
但得到如下错误
味精102,第15级,状态1,第42行“>”附近的语法不正确。
味精156,第15级,状态1,第57行
关键字“AS”附近的语法不正确
只需使用常规的
和
/或
逻辑即可
SELECT *
FROM tabl
WHERE tbl.mydate IS NULL
OR tbl.mydate > tbl2.mydate
注意:在SQL Server中,它是一个case表达式,不是case语句,您只能从中返回一个值,而不是一个条件。它是一个case表达式,不是case语句,您只能从中返回一个值,而不是一个条件。
tbl
和tbl2
在哪里定义的?请注意,“AS”实际上不在查询中,tbl或tbl2也不在查询中。如果您发布的代码实际上不是您正在使用的代码(或者只是一个较大查询的片段),则会使事情变得更加困难。学习该语言需要付出巨大的努力。欢迎来到Stack Overflow。请使用,阅读中的主题,并阅读。但这并不能为我提供正确的数据,如果我使用OR,它仍然显示NULL,但如果我删除OR条件,它将显示record@Jimlee首先,显示完整的查询,然后显示一些示例数据。因为我提供的逻辑与您的逻辑相同。