如何在SQL查询中将SQL列null值转换为0,将varchar转换为十进制
我需要将如何在SQL查询中将SQL列null值转换为0,将varchar转换为十进制,sql,sql-server,select,sql-server-2008-r2,crystal-reports,Sql,Sql Server,Select,Sql Server 2008 R2,Crystal Reports,我需要将varchar数据类型中的SQL列转换为decimal,并将空值转换为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 我需要将借方和贷方列的空值转换为零。如何将空值转换部分插入此代码?
varchar
数据类型中的SQL列转换为decimal
,并将空值转换为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
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,可以选择isnull……
查询应该是这样的
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
您是在编写SQL(结构化查询语言)吗?您的意思是说Microsoft SQL Server(实际产品)?如果是:请添加
sql server
标记以明确这一点。如果不是:这是什么数据库系统?这是一个错误:“coalesce”不是一个可识别的内置函数name@Ganesh_Develkar这是可行的,但当我在计算中使用此查询时,它不会显示负值(例如:-65000.00)所有负值都显示出来0@user3844217我认为这些值是空的看看这个选择CAST(isnull(-65000.00,0)作为十进制(9,2))
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