这次做的这个任务主要是写出一个升级的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) + ':' ;这条语句是不能被正确执行的