使用sql-在select语句中不为null

伊丽莎白

我似乎无法弄清楚如何在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:数据为...

如果该行没有错误,则应该只是一个空/空字段。

乔治·贝索斯(Giorgos Betsos)

您可以使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章