国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 刚察县| 林周县| 邵阳市| 武平县| 射洪县| 甘德县| 专栏| 阿巴嘎旗| 祁门县| 甘南县| 库伦旗| 芒康县| 库车县| 临颍县| 合江县| 贺兰县| 界首市| 天等县| 富阳市| 南乐县| 鸡东县| 鄄城县| 明溪县| 扎囊县| 五家渠市| 正蓝旗| 永修县| 上思县| 金坛市| 工布江达县| 美姑县| 大荔县| 义乌市| 长顺县| 临汾市| 泗水县| 肇东市| 罗田县| 灵宝市| 元阳县| 东丽区|