1樓:在晴天的雨傘
--1. 構造使用in子句的動態transact-sql方法進行編號查詢
--a. 要查詢的欄位型別是數字型
--查詢的值列表
declare @idlist varchar(100)
set @idlist='1,2,3'
--拼接並執行動態transact-sql語句
exec('select * from tbname where fdname in('+@idlist+')')
go--b. 要查詢的欄位型別是字元型
--查詢的值列表已經加上了字串邊界符
declare @idlist varchar(100)
set @idlist='''a'',''b''''a'',''c'''
--拼接並執行動態transact-sql語句
exec('select * from tbname where fdname in('+@idlist+')')
go--查詢的值列表沒有字串邊界符
declare @idlist varchar(100)
set @idlist='a,b''a,c'
--由於是欄位型別是,所以在拼接時,必須為其加上字串邊界符(')
declare @s varchar(1000)
set @s=''''
+replace(replace(@idlist,'''',''''''),',',''',''')
+''''
--拼接並執行動態transact-sql語句
exec('select * from tbname where fdname in('+@s+')')
go--2. 使用like或者patindex進行編號查詢
--查詢的值列表
declare @idlist varchar(100)
set @idlist='1,2,3'
--查詢
select * from tbname where charindex(','+rtrim(fdname)+',',','+@idlist+',')>0
select * from tbname where patindex('%,'+rtrim(fdname)+',%',','+@idlist+',')>0
select * from tbname where ','+@idlist+',' like '%,'+rtrim(fdname)+',%'
go--3. 編號查詢中常見的錯誤
--a. 最容易犯的錯誤:表示式充當表示式列表。
declare @s varchar(100)
set @s='1'
select id,name from sysobjects where id in(@s)
/*--結果
id name
---------------- ------------
1 sysobjects
--*/
set @s='1,2,3'
select id,name from sysobjects where id in(@s)
/*--結果
伺服器: 訊息 245,級別 16,狀態 1,行 3
將 varchar 值 '1,2,3' 轉換為資料型別為 int 的列時發生語法錯誤。
--*/
go--b. 生成動態transact-sql語句時忽略了資料型別。
declare @s varchar(100)
set @s='u,s'
exec('select id,name from sysobjects where id in('+@s+')')
/*--結果:
伺服器: 訊息 207,級別 16,狀態 3,行 1
列名 's' 無效。
伺服器: 訊息 207,級別 16,狀態 1,行 1
列名 'u' 無效。
--*/
go--c. 忽略了比較的精確性問題。
--要查詢的資料
declare @t table(col varchar(10))
insert @t select '1'
union all select '11'
union all select '111'
union all select '22'
--查詢
declare @s varchar(100)
set @s='111,22'
select * from @t where charindex(col,@s)>0
/*--結果
col----------
1 11
11122 -*/go
2樓:匿名使用者
問題在第8行,
請參考第13行的寫法。
第8行要寫出 set @sql=@sql + n' select @i_i '
js字串拼接的問題,JS裡面字串拼接問題
奔流的宵析 拼接過後就是 topage 裡面帶的引數需要單引號 而包裹它的字串也是用了單引號 所以就得用轉義字元 斜槓 來讓拼接的字串正確 首先要明白的是 這個符號的意思是轉義,主要是用來區別語法中的字元和普通輸出字元的。你的 var str 假設id 1 name 張三 你會看的更加清楚。id n...
sql語句中怎樣把日期轉為字串
盤合厚珺婭 這個問題我已經回答了,樓主是mysql資料庫.需要得到yyyymm,應該是.select concat year now month now 秀乞群群 convert data type length expression style 引數expression data type 目標系...
SQL擷取字串,sql如何擷取字元
substring 返回字元 binary text 或 image 表示式的一部分。有關可與該函式一起使用的有效 microsoft sql server 資料型別的更多資訊,請參見資料型別。語法 substring expression start length 引數 expression 是字...