use*_*903 9 sql-server t-sql case
我正在努力诊断 TSQL 中遗留查询的问题。查询中返回的列之一是:
CASE WHEN PaidDate >= '2021-01-01' AND PaidDate <=+'2021-10-31' THEN WO ELSE 0 END AS dYTDWO,
Run Code Online (Sandbox Code Playgroud)
我以前没有见过“<=+”作为条件,并且在网上找不到任何对此的参考。
谁能对此做出解释?SSMS 对此非常满意,并且查询得以执行。
谢谢。
mus*_*cio 15
TLDR:这可能是一个拼写错误1 。
AND PaidDate <=+ '2021-10-31'
被解析为AND PaidDate <= (+'2021-10-31')
,并且一元加号不会改变任何东西,所以......
我在猜测,但这可能有其根源(强调我的):
尽管一元加号可以出现在任何数值表达式之前,但它不对表达式返回的值执行任何操作
然后他们一定会想,无论如何,一元加号对于任何非数字数据类型都没有意义,所以我们为什么不将其完全变成无操作,而不是提出特定于数据类型的错误处理。
就这样,一元加上你想要的任何东西。
附言。SELECT ++++6++++++++++++++++++++++++++++5
正确地返回 11,因为它只是SELECT (++++6)+(+++++++++++++++++++++++++++5)
, 与 相同SELECT 6+5
。
1 - 请注意“=”和“+”位于同一个键上。
归档时间: |
|
查看次数: |
1029 次 |
最近记录: |