我似乎无法弄清楚如何在sql中使用isull或ifnull语句。我需要说的a.Error1
是,如果不为null,则输出' - '
和CHAR(13)+CHAR(10)
。如果a.Error1返回null,则基本上应该没有破折号或新的换行符。因此,如果该字段不为空,则打印信息。
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
例如,如果对于给定的记录,错误1、2和5返回了输出,我希望输出如下:
-错误1:存在
...-错误2:
....-错误5:数据为...
如果该行没有错误,则应该只是一个空/空字段。
您可以使用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句