2011-09-08 43 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 + '%'