我有一个表,它显示了所有的名字和信用额度。
我必须用isnull
函数来显示(“待定”)
那里的人没有信用额度又名谁(空)。
当我试图,它给了我一个错误'Error converting data type varchar to numeric.'
select concat('Welcome back, ' + CustomerName, '.' , ' Your credit limit is: ', CreditLimit, isnull(CreditLimit,'('Pending'))) from [Sales].[Customers]
ISNULL会期望第二属性具有相同类型为先,并会尝试将其转换。由于CREDITLIMIT是一个数字,该数据库将尝试将varchar /串“(待定)”转换为数值太大,这将失败。
解决办法:铸造CREDITLIMIT字符串类型。毕竟,这将是一个句子的一部分,无论如何,你不需要它的数量在这一点上。
演员将工作这样的事情,但它可能取决于你使用的不是指定的数据库上。 STR
至少适用于SQL Server,它查询的模样。其它数据库,可能会使用像CAST
或CONVERT
功能,这是更常规一些,并会要求您指定类型。
ISNULL(STR(CreditLimit), '(Pending)')