我有几个列定义为 decimal(16,2)
。
我想留下值''(空白(。
当我将选择查询为
时CASE
WHEN FIELD1 IS NULL THEN ''
ELSE FIELD1
END AS FIELD_NAME
这将不允许作为列的性质。
您能帮我如何在此列中放置空白值?
非常感谢
您要么需要将值留作NULL
(推荐解决方案(,要么将所有内容转换为文本。错误的原因是您无法返回小数和同一列中的文本值(''
是文本值(。
要将所有内容转换为文本并插入空白值,请使用以下内容:
SELECT ISNULL(CONVERT(VARCHAR(20), Field1), '')
FROM myTable
我同意注释,但是如果您必须在SQL中进行评论,则可以根据以下代码在案例语句中使用铸件。最好在前端进行处理,因为以下代码意味着您的最终选择返回VARCHAR,而不是十进制。处理的前端,您可以从SQL返回小数,并显示空白。
create table #temp (thing decimal(16,2))
insert into #temp (thing) values(NULL)
select
case when thing IS NULL then ''
else cast(thing as varchar(5)) end
from #temp