相关疑难解决方法(0)

使用 ISNULL 将 INT 列值转换为空字符串

我需要将 INT 数据类型的列 ID 转换为空字符串 ['']。我不应该修改源列数据类型,而是需要在我在另一个表中的转换中转换它。ID 列是“可为空的”,因为其中包含空值。这是我的代码。

CREATE TABLE #V(ID INT) ;

INSERT INTO #V 
    VALUES (1),(2),(3),(4),(5),(NULL),(NULL) ;

 SELECT CASE WHEN CAST(ISNULL(ID,'') AS VARCHAR(10)) = '' THEN '' ELSE ID END AS ID_Column
 FROM  #V;
Run Code Online (Sandbox Code Playgroud)

这将返回:

ID_Column
1
2
3
4
5
NULL
NULL
Run Code Online (Sandbox Code Playgroud)

当我修改我的 CASE 语句时,如下所示:

CASE WHEN CAST(ISNULL(ID,'') AS VARCHAR(10)) = '' THEN '' ELSE ID END AS  ID_Column
Run Code Online (Sandbox Code Playgroud)

它返回:

ID_Column
1
2
3
4
5
0
0
Run Code Online (Sandbox Code Playgroud)

sql type-conversion isnull sql-server-2008

4
推荐指数
1
解决办法
7865
查看次数

标签 统计

isnull ×1

sql ×1

sql-server-2008 ×1

type-conversion ×1