參考:SQL server中null+字符串,isnull以及把查詢結果賦給一個字符變量組成另一個查詢語句
1.開始定義的字符串都為null.例如:declare @sql,那么@sql就是null 如果后面要進行 變量字符串的變量拼接的話,最好是給@sql先賦值為空 或者 其他變量
需求:在一個游標內 循環獲取手機號的字符串進行拼接。但是一直拼接不成功
declare @dhhm as varchar(2000) --定義了變量電話號碼 如果不給它賦值的則為null,后面字符串拼接的時候就會報錯 declare @rcount as int --定義變量數量!!!!!!!!!!!!!! set @rcount=0 --這里必須給變量賦值為0 否則就是null后面 無法++!!!!!!!! DECLARE @mobilnumber nvarchar(2000) DECLARE MyCursor1 CURSOR --定義游標 FOR select mobilephone from sys_user where fullname in (select * from f_splitSTR('system,楊銀',',')) OPEN MyCursor1 --打開游標 FETCH NEXT FROM MyCursor1 INTO @mobilnumber --print ('游標開始查找數據') print ('foreach的狀態'+convert(varchar(200),@@fetch_status)) while(@@fetch_status=0) BEGIN set @dhhm = isnull(@dhhm,'')+@mobilnumber+',' --這里使用了isnull方法判斷變量@dhhm的值 如果為null則賦值為空字符串,這樣就不會引起 字符串拼接的錯誤了.
--如果這里不想用isnull的話,在@dhhm,定義變量后,要給 @dhhm賦值為空即可,如:set @dhhm=''
set @rcount = @rcount+1 FETCH NEXT FROM MyCursor1 INTO @mobilnumber END --關閉游標 CLOSE MyCursor1 --釋放資源 DEALLOCATE MyCursor1 print @dhhm print ('短信數量'+convert(varchar(20),@rcount))
sql中字符串的截取:http://www.cnblogs.com/yeminglong/archive/2011/10/15/2212967.html
declare @id as varchar(50) set @id='123456,' select SUBSTRING(@id,0,Len(@id))
返回結果 123456 ,最后的逗號去掉了