2011-09-08 44 views

回答

1

第一行检查变量或参数是否@companyCode包含值NULL与否。

有必要使用IS NULL这不是=NULL,因为正常的平等的比较不NULL工作(NULL = NULL不计算为true。)

如果它不是null,则百分号要么追加并将结果重新分配给变量。

+是TSQL中的字符串连接运算符,与其他方言中使用的||不同。

推测这是用于LIKE查询,其中%是一个通配符,意思是匹配任何一组0个或多个字符。这些使用引导通配符的LIKE搜索非常昂贵,因为它们无法利用索引查找满足表达式的行。全文索引通常可以帮助这种需求。

检查null是不是真的需要,因为如果CONCAT_NULL_YIELDS_NULL打开(默认),那么连接的结果仍然是NULL无论如何。

同为第二线,但显然不同的变量。

0

如果变量@companyCode未设置为空值,则通过在开头和结尾处加上%修改的变量。 对@companyName变量做同样的处理。

+0

谢谢Ricky.Is还有什么理由不喜欢呢? – Shaker

+0

我想代码暗示的是该变量将在稍后的select中使用。就像“如果输入公司名称,搜索任何匹配该名称的公司”。例如:您输入“ROSO”,它被翻译成“%ROSO%”和匹配的“微软”和“Peligroso公司” – rickythefox

+0

非常感谢你瑞奇。 – Shaker

0

这意味着:

如果@companyCode参数值不db-NULL,设定值@companyCode'%' + @companyCode + '%'