国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

在sqlserver存儲過程中給in參數(shù)傳帶逗號值的辦法,如傳'1','2','

2024-07-21 02:50:21
字體:
供稿:網(wǎng)友
在sqlserver存儲過程中給in參數(shù)傳帶逗號值的辦法,如傳'1','2','3'這樣的

最近在一項目修改中,要在存儲過程中給in參數(shù)傳值,語句寫的也對,但怎么執(zhí)行都得不出結(jié)果,如果把這語句直接賦值、執(zhí)行,卻能得出結(jié)果,很是奇怪,如:

直接執(zhí)行select schoolname from school_info where code in('01','02'),是可以得出結(jié)果的,但在存儲過程中,使用

declare @area varchar(120);set @area='01'+','+'02';select schoolname from school_info where code in(@area),卻得不出去結(jié)果。

想著可能是@area賦值的寫法有問題,但試過多種辦法都不行。嘗試著用組成動態(tài)sql語句, 用exec執(zhí)行的方法,是沒有問題,能得出結(jié)果的,但總感覺這樣有點怪怪的,不是想要的理想中解決辦法。

后來終于在網(wǎng)上找一個解決辦法,測試后,沒有問題,用著很方便。就是建一個函數(shù),建好后,列在函數(shù)的表值函數(shù)下面,語句如下:

createfunction[dbo].[f_split](@cvarchar(2000),@splitvarchar(2))returns@ttable(colvarchar(20))asbeginwhile(charindex(@split,@c)<>0)begininsert@t(col)values(substring(@c,1,charindex(@split,@c)-1))set@c=stuff(@c,1,charindex(@split,@c),'')endinsert@t(col)values(@c)returnend

然后使用的時候呢,語句如下:

select schoolname from school_info where code in(select col from [dbo].[f_split](@area,','))這樣再執(zhí)行存儲過程,給in傳入帶逗號值的參數(shù),都能正確得出結(jié)果了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南岸区| 云阳县| 德州市| 旅游| 烟台市| 彭山县| 密云县| 阳春市| 南汇区| 双牌县| 会宁县| 河源市| 大方县| 渝北区| 滨海县| 泉州市| 永清县| 梁平县| 石家庄市| 科技| 鹰潭市| 庆阳市| 衢州市| 西和县| 穆棱市| 邵东县| 云林县| 隆尧县| 克东县| 南雄市| 德昌县| 手机| 小金县| 襄垣县| 金川县| 广灵县| 理塘县| 天峨县| 万山特区| 临沭县| 崇义县|