參考: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
@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管理這個物件 初始化字...