sql server 變數 字串拼接

2022-01-21 00:13:32 字數 1706 閱讀 7456

參考:sql server中null+字串,isnull以及把查詢結果賦給乙個字元變數組成另乙個查詢語句 

1.開始定義的字串都為null.例如:declare @sql,那麼@sql就是null 如果後面要進行 變數字串的變數拼接的話,最好是給@sql先賦值為空 或者 其他變數

需求:在乙個游標內 迴圈獲取手機號的字串進行拼接。但是一直拼接不成功

declare

@dhhm

asvarchar(2000

) --定義了變數**號碼 如果不給它賦值的則為null,後面字串拼接的時候就會報錯

declare

@rcount

asint --定義變數數量!!!!!!!!!!!!!!

set@rcount

=0 --這裡必須給變數賦值為0 否則就是null後面 無法++!!!!!!!!

declare

@mobilnumber

nvarchar(2000

)

declare mycursor1 cursor

--定義游標

forselect 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中字串的擷取:

declare

@idas

varchar(50

)set

@id=

'123456,

'select

substring(@id,0,len(@id))

返回結果 123456 ,最後的逗號去掉了

貪心 字串 拼數

原題鏈結 不知道這是第幾次做這類題了 對於兩個數a和b,我們考慮微調 若a放在前面,則數字為 a b 這裡的 號表示將b連在a後面 若b放在前面,則數字為 b a 則只需比較a b與b a的大小關係即可 即可以判斷哪個數一定放在前面問題來了,怎樣實現呢,兩兩對比?我們發現string 剛好滿足我們需...

變數 字串

變數 全域性變數和靜態變數的異同 相同點 都保留在靜態儲存區,生命期與程式生命期相同。不同點 全域性變數具有全域性作用域,靜態變數具有穩健作用域。把區域性變數改為靜態變數後是改變了它的儲存方式,即改變了它的生存期 把全域性變數改變為靜態變數後是改變了它的作用域,限制了它的適用範圍。全域性變數和區域性...

字串變數

string是乙個類,string的變數是物件的管理者而非所有者,就像陣列變數是陣列的管理者而非所有者一樣。new 建立 string s new string a string 建立了乙個string的物件,用 a string 初始化這個物件,建立管理這個物件的變數s,讓s管理這個物件 初始化字...