我可以使用这个:
select COALESCE(my_integer_field, '') from my_table
显示
NULL
值的零。如何不使用存储过程而不显示 NULL
或零值的任何内容(无零)?
最佳答案
看起来像是表示层而不是 DB 的工作。
无论如何你可以使用:
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 ║
╚══════════════════╩════════╝
关于sql-server - MS SQL 服务器 : display blank for a zero-valued or NULL-valued integer field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36726842/