当前位置: 首页 > 面试题库 >

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

翁俊良
2023-03-14
问题内容

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

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;

这将返回:

ID_Column
1
2
3
4
5
NULL
NULL

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

CASE WHEN CAST(ISNULL(ID,'') AS VARCHAR(10)) = '' THEN '' ELSE ID END AS  ID_Column

它返回:

ID_Column
1
2
3
4
5
0
0

问题答案:

这是你想要的吗?

select coalesce(cast(id as varchar(255)), '')
from #v;

您必须将整个结果列变成单个列。如果要使用空白值,则类型为某种字符串。

在您的示例中,else id意味着的结果case是整数,这就是为什么要获得0或的原因NULL



 类似资料:
  • 我只是无法在c中转换不同的数据类型,我知道c是一种强类型语言,所以我在这里使用了,但我面临一个问题,错误消息是 从“std::string{aka std::basic_string}类型转换为“int”类型的static_

  • 如何将字符串值转换为int?我正在获取。 结果应该类似于。

  • 问题内容: 该应用程序基本上通过输入初始速度和最终速度以及时间来计算加速度,然后使用公式来计算加速度。但是,由于文本框中的值是字符串,所以我无法将它们转换为整数。 问题答案: 基本概念, 请注意,这仅在Swift 1.x中有效 Swift 4更新

  • 注意:这个问题包含不建议使用的前1.0代码!不过,答案是正确的。 要在Rust中将转换为,我可以执行以下操作: 我知道如何将转换为的唯一方法是获取其中的一个片段,然后像这样使用: 有没有办法直接将转换为?

  • 我有代码: 首先,它接受给定的字符串并拆分为数组。接下来,每个数字都被转换成一个整数,最后,所有的数字都相互相加。它工作得很好,但代码有点长。所以我想到了在使用reduce的同时使用map函数并将String转换为Int,如下所示: 输出为: 因此,我的问题是:为什么我不能在使用reduce()时将字符串转换为整数?

  • 问题内容: 使用BufferedReader时如何将String转换为int?据我记得,它类似于以下内容: 但由于某种原因,它无法正常工作。 错误消息显示: 找不到适合的方法 它也说不适用 问题答案: 一个需要在构造函数中指定。该转弯字节流通向字符流。正如其他人提到的那样,您应该意识到可以从这段代码中引发的异常,例如IOException和NumberFormatException。