Eli*_*eth 2 sql sql-server null isnull ifnull
我似乎无法弄清楚如何在 sql 中使用 isnull 或 ifnull 语句的反义词。我需要说 ifa.Error1不为空——然后打印' - '和 + CHAR(13)+CHAR(10)。如果 a.Error1 返回空值,基本上应该没有破折号或换行符。因此,如果该字段不为空,则打印信息。
select a. ....
' - ' + a.Error1 + CHAR(13)+CHAR(10) +
' - ' + a.Error2 + CHAR(13)+CHAR(10) +
' - ' + a.Error3 + CHAR(13)+CHAR(10) +
' - ' + a.Error4 + CHAR(13)+CHAR(10) +
' - ' + a.Error5 + CHAR(13)+CHAR(10) +
' - ' + a.Error6 as 'error_message'
...
from table1 a
Run Code Online (Sandbox Code Playgroud)
例如,如果对于给定的记录 error1、2 和 5 返回输出,我希望输出如下:
- Error1: There was a ...
- Error2: ....
- Error5: The data was ...
如果该行不存在错误,它应该只是一个空/空字段。
您可以使用CASE:
SELECT a. ....
(CASE WHEN a.Error1 IS NOT NULL
THEN ' - ' + a.Error1 + CHAR(13)+CHAR(10)
ELSE ''
END) +
(CASE WHEN a.Error2 IS NOT NULL
THEN ' - ' + a.Error2 + CHAR(13)+CHAR(10)
ELSE ''
END) +
(CASE WHEN a.Error3 IS NOT NULL
THEN ' - ' + a.Error3 + CHAR(13)+CHAR(10)
ELSE ''
END) +
...etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5835 次 |
| 最近记录: |