在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎样解析不固定参数的存储过程

132次阅读
没有评论

共计 2466 个字符,预计需要花费 7 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下怎样解析不固定参数的存储过程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

如何解析不固定参数的存储过程

假设现在给你一个产品信息列表(显示出各个商品的基本信息),现在我想要根据所选择商品进行统计(任意选择几种),例如统计出价 格 10,11-20,21-30,31-40,41-50,50 以上的商品个有多少个(姑且认为就统计这些)。此时如果使用存储过程就势必需要传 入所选商品的 id 作为参数,但是 id 个数是不固定的。此时估计会有人这样写:

SET ANSI_NULLS ON
 SET QUOTED_IDENTIFIER ON
 -- =============================================
 -- Description:  统计商品
 -- =============================================
 ALTER PROCEDURE StatProductInfo
 @ids VARCHAR(8000)
 BEGIN
 DECLARE @followingTen INT
 DECLARE @elevenToTwenty INT
 DECLARE @twentyOneToThirty INT
 DECLARE @thirtyOneToFourty INT
 DECLARE @fourtyOneToFifty INT
 DECLARE @fiftyOrMore INT
 SELECT @followingTen=COUNT(*)
 FROM dbo.Products
 WHERE ProductID IN(@ids) AND UnitPrice 10 11=  20=  21=  30=  31=  40=  41=  50=  select=  eleventotwenty= COUNT(*)  from=  dbo.products=  where=  productid=  and=  unitprice=  between=  twentyonetothirty= COUNT(*)  thirtyonetofourty= COUNT(*)  fourtyonetofifty= COUNT(*)  fiftyormore= COUNT(*) 50
 SELECT @followingTen AS  $10 eleventotwenty=  as=  twentyonetothirty=  thirtyonetofourty=  fourtyonetofifty=  fiftyormore= $50 
 GO

其实如果你测试一下 (例如:EXEC dbo . StatProductInfo 3,4,8,10,22) 是有问题的,sql server 认为这整个是一个参数,转换时出错。此时我们想一下如果这些字段在一个虚表中就容易操作多了,但是一般虚表是有其他表通过查询得到,现在根本 无法查询又哪来的虚表呢? 聪明的朋友或许已经想到可以使用 表值函数。对,答案就是使用 表值函数。我们知道 表值函数 可以返回一个 Table 类型的变量(相当于一张虚表,存放于内存中),我们首先将字符串分割存放到 表值函数 的一个字段中,然后我们再从 表值函数 中查询就可以了(这个例子 也是 表值函数 的一个典型应用)。具体 sql 如下:

如何解析不固定参数的存储过程

然后我们稍微修改一下存储过程:

SET ANSI_NULLS ON
 SET QUOTED_IDENTIFIER ON
 -- =============================================
 -- Author: jianxin160
 -- Create date: 2010.11.05
 -- Description:  统计商品
 -- =============================================
 ALTER PROCEDURE StatProductInfo
 @ids VARCHAR(8000)
 BEGIN
 DECLARE @followingTen INT
 DECLARE @elevenToTwenty INT
 DECLARE @twentyOneToThirty INT
 DECLARE @thirtyOneToFourty INT
 DECLARE @fourtyOneToFifty INT
 DECLARE @fiftyOrMore INT
 SELECT @followingTen=COUNT(*)
 FROM dbo.Products
 WHERE ProductID IN(SELECT sp FROM dbo.GetSplitFieldsByString(@ids, ,)) AND UnitPrice 10 11=  20=  21=  30=  31=  40=  41=  50=  select=  eleventotwenty= COUNT(*)  from=  dbo.products=  where=  productid=  sp=  and=  unitprice=  between=  twentyonetothirty= COUNT(*)  thirtyonetofourty= COUNT(*)  fourtyonetofifty= COUNT(*)  fiftyormore= COUNT(*) 50
 SELECT @followingTen AS  $10 eleventotwenty=  as=  twentyonetothirty=  thirtyonetofourty=  fourtyonetofifty=  fiftyormore= $50 
 GO

这样通过执行 EXEC dbo . StatProductInfo 3,4,8,10,22 就可以得到想要的结果了。

以上是“怎样解析不固定参数的存储过程”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2466字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产成人一区二区三区在线 | 免费观看一级成人毛片 | 精品伊人久久久大香线蕉天堂 | 亚洲av无码专区在线播放中文 | 亚洲成色www久久网站 | 亚洲欧洲第一页 | 久久国产精品岛国搬运工 | 精品国产乱码久久久久夜深人妻 | 九九免费久久这里有精品23 | 亚洲中文字幕无码爆乳app | 成人欧美一区二区三区黑人 | 欧美男人天堂网 | 香蕉97碰碰视频免费 | 爱爱的免费视频 | 欧美精品videosex性欧美 | 国产成人免费永久播放视频平台 | 我要看黄色一级毛片 | 911精品国产自产在线观看 | 97精品国产97久久久久久 | 精品人妻av一区二区三区 | 夜夜曰| 欧美一级视频在线高清观看 | 色综合久久久久综合一本到桃花网 | 久久久久爱| 性做久久久久 | 福利一区二区在线观看 | 亚洲国产精品久久久久久 | 国产高清一区二区三区四区 | 中国一级全黄的免费观看 | 四虎免费在线视频 | 极品少妇xxxx精品少妇偷拍 | 91精品国产综合久久欧美 | 日本熟妇浓毛 | 亚洲人成网77777色在线播放 | 中文字幕无码视频专区 | 影音先锋中文字幕人妻 | 日本亚洲中文字幕不卡 | 国产成人免费 | 免费综合网| 国产裸拍裸体视频在线观看 | 蜜臀av色欲a片无码精品一区 |