如何检查 t-sql 中的空值

how to check for a null value in t-sql

我想检查 table 中的值,看它是否为空。

如果是这样,我只希望输出为“0.000”;否则,我想要必须转换为 varchar 字段的实际值。

数据库中列的定义是decimal(10,3)。

当我 运行 我的以下查询(查询的相关部分)时,我收到一条错误消息:

Error converting data type varchar to numeric.

这是出现错误的我的 t-sql 语法。我该如何更正它?

isnull(nullif(Ryder_Price,'0.000'),convert(varchar(max),Ryder_Price))

编辑

这是完整的 SELECT 声明:

Select '4'+','
            +','+Case when Country_Code= 1 then 'USA' else 'CAN' End 
            +','+
            +','+isnull(nullif(Ryder_Price,'0.000'),convert(varchar(max),Ryder_Price))
            +','+isnull(nullif(Ryder_Price,'0.000'),convert(varchar(max),Ryder_Price))
            +','+isnull(nullif(Ryder_Price,'0.000'),convert(varchar(max),Ryder_Price))
            +','+
            +','+'01/01/1900'
            +','+'01/01/2099'PartMaster_String
            ,4 ord,part_no 
            , RIGHT('000'+convert(varchar(3),ATA_SYSCode),3)+'-'+RIGHT('000'+convert(varchar(3),ATA_Asmcode),3)+'-'+RIGHT('000'+convert(varchar(3),ATA_Partcode),3) taskstring
            From tbl_CPM_PARTS_MASTER_PTC 

错误信息的原因是您发布的行可能只是将 Ryder_Price 作为值,这是一个小数类型。然后你试图将它连接成一个字符串。

实现您的既定目标:

I want to check for a value in a table to see if it's null.

If so, I just want output to be '0.000'; otherwise, I'd like the actual value which must be converted to a varchar field.

试试这个:

convert(varchar(max),isnull(Ryder_Price,'0.000'))