SQL server中isnull函数使用注意事项
SQL server数据库中,可以采用isnull()函数进行为空判断。
用法:
ISNULL(check_expression:any, replacement_value:any)
该函数需要两个参数。第一个为表达式。第二个为要返回的值。如果表达式为空,则返回第二个值。
该函数要求check_expression与replacement_value的数据类型必须一致(类型一致:包括字段长度)。
若第一个参数的长度过短,第二个参数过长,则会导致第二个参数的长度会被截取。如下图所示:
isnull(SPEC_ANALYTES.TESTNO, TESTS.TESTNO) as TESTNO
第一个参数字段为nvarchar(50),第二个参数字段长度为nvarchar(350)。因为第一个参数的长度是50,并且空的时候,会将第二个字段进行截取,引起部分字段丢失。
因此可以通过cast函数进行修改,将两个参数的值修改一致。
isnull(cast(SPEC_ANALYTES.TESTNO as nvarchar(350)), TESTS.TESTNO) as TESTNO