sql server 變量 字符串拼接


參考: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 ,最后的逗號去掉了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM