如何解决ISNULL功能

问题描述 投票:0回答:1

我有一个表,它显示了所有的名字和信用额度。

我必须用isnull函数来显示(“待定”)

那里的人没有信用额度又名谁(空)。

当我试图,它给了我一个错误'Error converting data type varchar to numeric.'

select concat('Welcome back, ' + CustomerName, '.' , ' Your credit limit is: ', CreditLimit, isnull(CreditLimit,'('Pending'))) from [Sales].[Customers]
sql
1个回答
3
投票

ISNULL会期望第二属性具有相同类型为先,并会尝试将其转换。由于CREDITLIMIT是一个数字,该数据库将尝试将varchar /串“(待定)”转换为数值太大,这将失败。

解决办法:铸造CREDITLIMIT字符串类型。毕竟,这将是一个句子的一部分,无论如何,你不需要它的数量在这一点上。

演员将工作这样的事情,但它可能取决于你使用的不是指定的数据库上。 STR至少适用于SQL Server,它查询的模样。其它数据库,可能会使用像CASTCONVERT功能,这是更常规一些,并会要求您指定类型。

ISNULL(STR(CreditLimit), '(Pending)')
© www.soinside.com 2019 - 2024. All rights reserved.