小编典典

将SQL Server列中的空白与整数数据类型

sql

我有一个表,其值如0、1、2、3,-1,-2、9、8等。我想在数字小于0的列中放入“空白”,即它应该显示所有记录并位置小于0的任何地方都应显示“”。

我尝试使用STR,但这使我的查询速度太慢。查询如下所示:

select CASE 
WHEN position < 0 THEN ''
ELSE position
END Position, column2
from
(
    Select STR (column1) as position, column2 from table
) as t1

有人可以建议一种更好的方式来显示“ column1”中的“”吗?还有其他办法吗?我可以用什么代替str?

更新:column1是int类型,我不想将null而是空字符串。我知道我无法在int列中显示空字符串,因此必须使用强制转换。只是想确保它不会减慢我的查询速度,寻找可以在更短的时间内返回结果的最佳选项。


阅读 213

收藏
2021-05-16

共1个答案

小编典典

您可以将CASE表达式放入查询中,并替换STRCAST,如下所示:

SELECT
    CASE WHEN position < 0 THEN '' ELSE CAST(column1 as VARCHAR(10)) END as position
,   column2
FROM myTable
2021-05-16