如何检查 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'))
我想检查 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'))