MS SQL服务器:显示零值或NULL值整数字段的空白

时间:2016-04-19 18:41:38

标签: sql-server tsql

我可以使用它:

select COALESCE(my_integer_field, '') from my_table 

显示NULL值的零。如何在不诉诸存储过程的情况下,不显示NULL或零值的任何内容(无零)?

1 个答案:

答案 0 :(得分:8)

它看起来像表示层而不是数据库。

无论如何你可以使用:

SELECT CASE WHEN my_integer_field = 0 OR my_integer_field IS NULL THEN ''
       ELSE  CAST(my_integer_field AS VARCHAR(10))
       END
FROM my_table;

或使用IIF(SQL Server 2012 +):

SELECT IIF(my_integer_field = 0 OR my_integer_field IS NULL, 
           '',
           CAST(my_integer_field AS VARCHAR(10)))
FROM my_table;

LiveDemo

请注意,blank(空字符串'')会将INT的数据类型更改为字符串。

甚至更短:

SELECT *,COALESCE(NULLIF(CAST(my_integer_field AS VARCHAR(10)) ,'0'), '') AS result
FROM my_table;

LiveDemo2

输出:

╔══════════════════╦════════╗
║ my_integer_field ║ result ║
╠══════════════════╬════════╣
║ NULL             ║        ║
║ 0                ║        ║
║ 1                ║      1 ║
║ 2                ║      2 ║
╚══════════════════╩════════╝