寻找使用此条件接受NULL和BLANK值的最有效方法。
and region.Description like isnull(@Region, N'') + N'%'
此查询适用于NULLS,但对于EMTPY值,它不起作用。有什么想法可以调整它来执行这两项工作吗?
答案 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'%'))