繁体   English   中英

如何在SQL查询中将SQL列的空值转换为0并将varchar转换为十进制

[英]How to convert SQL column null value to 0 and varchar to decimal in sql query

我需要将varchar数据类型中的SQL列转换为decimal ,将null值转换为0。这是将varchar转换为decimal代码:

SELECT 
    CAST(debit as DECIMAL(9,2)),
    CAST(credit as DECIMAL(9,2)),
    sum_accname,
    sum_date, 
    sum_description
FROM 
    sum_balance

我需要将借方和贷方列的空值转换为零。 如何将空值转换部分插入此代码?

SELECT 
    COALESCE(CAST(debit as DECIMAL(9,2)),0) as debit,
    COALESCE(CAST(credit as DECIMAL(9,2)),0) as credit,
    sum_accname,
    sum_date, 
    sum_description
FROM 
    sum_balance

使用COALESCE函数获取NOT NULL值。

尝试这个:

SELECT 
    CAST(COALESCE(debit, '0') AS DECIMAL(9,2)),
    CAST(COALESCE(credit, '0') AS DECIMAL(9,2)),
    sum_accname,
    sum_date, 
    sum_description
FROM 
    sum_balance;

尝试这个

SELECT 
    CAST(isnull(debit ,0) as DECIMAL(9,2)),
    CAST(isnull(credit,0) as DECIMAL(9,2)),
    sum_accname,
    sum_date, 
    sum_description
FROM 
    sum_balance

改进的格式,对于sql server,有isull选项。
查询应该是这样的

SELECT isnull(CAST(debit as DECIMAL(9,2)),0), 
isnull(CAST(credit as DECIMAL(9,2)),0), sum_accname, sum_date, sum_description
FROM sum_balance

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM