1 t-sql sql-server user-defined-functions
我刚才遇到了一些意想不到的事情,它提醒我,我还有很多关于SQL的知识.
我有一个报告查询,用于UNION ALL连接不同日期范围的结果,并以HTML格式存储在临时表中.该查询今天给出了MTD范围的NULL值,因为1日没有活动.我不明白的是:为什么我会得到任何排?玩弄查询,我看到这个剪辑:
SELECT
70000,
'<tr>' + dbo.FormatAsHTMLRowHead('Month to date') + '</tr>'
FROM
#RawResults
WHERE
Date = '2011-05-01'
Run Code Online (Sandbox Code Playgroud)
...没有预期的结果,零行.但是,如果我向SELECT子句添加一个字段:
SELECT
70000,
'<tr>'
+ dbo.FormatAsHTMLRowHead('Month to date')
+ dbo.FormatAsHTMLCell(dbo.FormatInteger(SUM(Leads)), 'R')
+ '</tr>'
FROM
#RawResults
WHERE
Date = '2011-05-01'
Run Code Online (Sandbox Code Playgroud)
然后我得到一个NULL值的行:
Sequence HTML
-------- ----
70000 NULL
Run Code Online (Sandbox Code Playgroud)
查询不SELECT Field FROM #RawResults WHERE Date = '2011-05-01'返回任何结果,因此即使在WHERE子句中没有匹配值,似乎作用于非文字的UDF也会导致SQL返回一行.这是一个奇怪的边缘情况,还是因为今天早上逃脱我的某些原因,这是否完全合情合理?
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |