這次做的這個任務主要是寫出一個升級的sql語句,今天終於寫好了,真是不容易,寫了我有史以來最長的一個sql語句。都怪我平時sql接觸的太少了,基本功不紮實!!
任務做完以後,總結一下,做些筆記,供以後查看。
1.用 DECLARE聲明一個變量
DECLARE @cFreeValue varchar(500)
2.用set 對變量進行賦值
SET @cFreeValue = ....
3.isnull函數
isnull(check_expression,replacement_value)如果check_expression爲空,則用replacement_value進行填充。
在使用這個函數的時候,注意null與任何字符串的拼接結果都是null。
SET @cFreeValue=(select top 1
isnull(cFree1+',' , '')+
isnull(cFree2+',' , '')+
isnull(cFree3+',' , '')+
isnull(cFree4+',' , '')+
from bussiness
)
4.case when then ...else...END
這個關鍵字必須連着使用,缺一不可。
5.在對查詢的結果進行拼接的時候,必須在查詢的字段後面進行拼接,而不是在整個select語句後進行拼接
如 select cName + ':' from META_DEF ; 這條語句能正確執行
而 (select cName form META_DEF where id=i) + ':' ;這條語句是不能被正確執行的