我正在编写一个sql server查询:
select * from vwApplicationList
where status='Unassigned' AND
BBL like '%' + @BBL + '%' AND
UnitOrAppartmentNumber like '%'+@Appartment+'%' AND
ResidenceTypeDescription like '%'+@ResidenceTypeDescription+'%' AND
SN1 like '%'+@SN1+'%' AND
SN2 like '%'+@SN2+'%'
问题是几个记录中的字段“SN2”为空。那我怎么比较呢?
答案 0 :(得分:3)
答案 1 :(得分:2)
如果您想在比较中得到肯定的结果:
... AND COALESCE(SN2, @SN2) LIKE '%' + @SN2 + '%'
如果您想要否定结果(假设@SN2
也不是空字符串):
... AND COALESCE(SN2, '') LIKE '%' + @SN2 + '%'
答案 2 :(得分:2)
NULL
,只能与IS NOT
和IS NOT NULL
进行比较。
如果您想要始终包含NULL,可以尝试
(SN2 like '%'+@SN2+'%' OR SN2 IS NULL)
如果您只想在@ SN2为空时包含NULL,请尝试类似
的内容(SN2 like '%'+@SN2+'%' OR (@SN2 = '' AND SN2 IS NULL))