【问题标题】:SQL - Replacing an is null integer with a varcharSQL - 用 varchar 替换 is null 整数
【发布时间】:2014-10-02 14:50:38
【问题描述】:

如果在 select 语句中存在空值,我正在尝试用新的 varchar 字符串替换一列:

(personid + ISNULL(personid, 'no person'))

我并没有尝试更新它,只是在查询结果中将值显示为“无人”。

但我收到一条错误消息:

将 varchar 值转换为 int 数据类型时转换失败。

我该如何克服这个问题?

【问题讨论】:

    标签: sql sql-server if-statement null


    【解决方案1】:

    替换这个:

    (personid+ISNULL(personid,'no person'))
    

    有了这个:

    (ISNULL(CAST(personid as varchar(31)),'no person')) AS personId
    

    【讨论】:

    • 抱歉,我刚刚检查了一下,字段名称实际上存储为“NULL”,而不是不显示任何内容。我将如何将其转换为查询结果中的其他内容?谢谢!
    • 但这仍然有效,因为 personid 字段是 INT,所以无论如何我都必须更改它!非常感谢兄弟!
    • 我很困惑你说他们在哪里存储'NULL'。如果 personId 字段是 INT,他们不能在其中存储字符串“NULL”。如果您的意思是列标题没有名称,则可以使用别名来修复。请参阅上面我编辑的答案。
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多