简书链接:sqlserver打印任何类型变量遇到空不打印处理拼接细节
文章字数:132,阅读全文大约需要1分钟
如果先isnull 然后 转换为 字符串 isnull()后面的参数就必须和前面参数一样,
因此遇到 数值类型 必须默认给定数值类型的默认值,但是我做了一个自动化 不知道他类型

遇到空 @a int

isnull(@a,‘’)就会报错,经过测试先用cast 或者convert转字符串 然后再处理空

plaintext
1
2
3
4
5
6
7
8

print('@xxx'+CONVERT(VARCHAR(30), @Qty))
print(' cast null number '+CAST( @Qty as varchar(100)))
print(' cast null number to str after isnull '+isnull(CAST( @Qty as varchar(100)),''))
print('cast 1 : '+CAST( 1 as varchar(100)))

print('@convert :' + convert( VARCHAR(1100),@Qty))
print('@convert after isnull:' + isnull(convert( VARCHAR(1100),@Qty),'' ))

如果qty是null,呢么其中 只有 after isnull 和 cast 1才会打印