2012-01-10 80 views

回答

2

如果你想在比较积极的结果:

... AND COALESCE(SN2, @SN2) LIKE '%' + @SN2 + '%' 

如果你想有一个负的结果(假设@SN2不也是一个空字符串):

... AND COALESCE(SN2, '') LIKE '%' + @SN2 + '%' 
+1

当前编写的代码是否会排除SN2为空的所有行? – 2012-01-10 15:09:53

+0

我可能是错的,但是这不会阻止使用包含SN2的索引吗? – cadrell0 2012-01-10 15:12:40

+0

@PhilipKelley:的确如此。 – 2012-01-10 15:14:20

2

NULL,只有进行比较与IS NOTIS NOT NULL

如果你想始终包含NULL,你可以尝试

(SN2 like '%'[email protected]+'%' OR SN2 IS NULL) 

如果你只希望包括空当@ SN2是空的,你可以试试

(SN2 like '%'[email protected]+'%' OR (@SN2 = '' AND SN2 IS NULL))