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

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

在sql server中建存儲過程,如果需要參數(shù)是一個可變集合怎么處理?

2024-08-31 00:54:29
字體:
供稿:網(wǎng)友
在sql server中建存儲過程,如果需要參數(shù)是一個可變集合怎么處理?

在sql server中建存儲過程,如果需要參數(shù)是一個可變集合的處理

原存儲過程,@objectIds 為可變參數(shù),比如 110,98,99

ALTER PROC [dbo].[Proc_totalScore]

@categoryKey int,

@objectIds VARCHAR(MAX)

AS

BEGIN

SELECT c.Name,AVG(e.Score) Score FROM dbo.Sys_com_comment_main m

INNER JOIN dbo.sys_com_coment_extend e ON e.commentId=m.ID

INNER JOIN dbo.sys_com_category c ON e.NameKey=c.NameKey

WHERE m.categoryKey=@categoryKey AND m.dataStatus<>99 AND m.IsCheck=0 AND m.objectId IN(@objectIds)

GROUP BY c.Name

END

調(diào)用1:EXEC [Proc_totalScore] 99902,'110'

調(diào)用2:EXEC [Proc_totalScore] 99902,'110,97,87'

在sql server中建存儲過程,如果需要參數(shù)是一個可變集合怎么處理?

上網(wǎng)搜了一下大部分都是醬油貼,有網(wǎng)友說用xml的方式,具體的代碼也沒看見

折中一下,用sql拼接來實現(xiàn)可變參數(shù)的效果

先舉個sql拼接的例子

DECLARE @sql NVARCHAR(MAX)

SET @sql ='select 1 mmd'

EXECUTE(@sql)

折中后的存儲過程

ALTER PROC [dbo].[Proc_totalScore]

@categoryKey VARCHAR(100),

@objectIds VARCHAR(MAX)

AS

BEGIN

DECLARE @sql NVARCHAR(MAX)

SET @sql ='SELECT c.Name,AVG(e.Score) Score FROM dbo.Sys_com_comment_main m

INNER JOIN dbo.sys_com_coment_extend e ON e.commentId=m.ID

INNER JOIN dbo.sys_com_category c ON e.NameKey=c.NameKey

WHERE m.categoryKey='+@categoryKey+' AND m.dataStatus<>99 AND m.IsCheck=0 AND m.objectId IN('+@objectIds+')

GROUP BY c.Name'

EXECUTE(@sql)

END

最終效果


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙湾县| 浪卡子县| 广宁县| 自治县| 绥宁县| 浏阳市| 奉贤区| 双鸭山市| 成安县| 沅江市| 牡丹江市| 上高县| 益阳市| 罗田县| 谢通门县| 镇安县| 丰顺县| 正定县| 西充县| 万安县| 新沂市| 冷水江市| 曲阜市| 寻乌县| 如东县| 汝阳县| 军事| 孝义市| 夏邑县| 新津县| 河池市| 兴和县| 罗源县| 乐至县| 贡觉县| 彭山县| 治多县| 吉安县| 太康县| 左权县| 平江县|