像Clause一样的SQL(空值和空值)

时间:2016-02-10 04:51:37

标签: sql sql-server-2008

寻找使用此条件接受NULL和BLANK值的最有效方法。

and region.Description like isnull(@Region, N'') + N'%'

此查询适用于NULLS,但对于EMTPY值,它不起作用。有什么想法可以调整它来执行这两项工作吗?

3 个答案:

答案 0 :(得分:0)

我不确定您要做什么,或者您正在使用哪个数据库。但是根据这些问题的答案,我猜测COALESCE可能会比ISNULL更好地为你做这个技巧。

答案 1 :(得分:0)

就个人而言,我发现明确检查NULL是比较清楚,而不是使用COALESCE()或ISNULL()做任何巧妙的技巧。然后通过在修剪任何空格后检查字符串的长度来包含空格。

(region.Description LIKE @Region + '%' OR @Region IS NULL OR LEN(LTRIM(RTRIM(@Region)))=0)

答案 2 :(得分:0)

AND(  (isnull(@Region, N'')='' AND isnull(region.Description,'')='')
OR( isnull(@Region, N'')<>'' AND region.Description like @Region + N'%'))