Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在where子句中使用大小写表达式时出错_Sql Server - Fatal编程技术网

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首先,显示完整的查询,然后显示一些示例数据。因为我提供的逻辑与您的逻辑相同。