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

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

116次阅读
没有评论

共计 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字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 国产午夜一级淫片 | 永久黄网站色视频免费看 | 狠狠色狠狠色狠狠五月ady | 欧美日韩视频在线第一区二区三区 | 黄网在线观看免费网站 | 免费观看黄色a一级录像 | 四虎永久在线精品免费av | 国产一国产一有一级毛片 | 97国产精品 | 韩国视频一区 | 亚洲综合激情另类小说区 | 欧美日韩国产在线一区 | av狠狠色丁香婷婷综合久久 | 狼群视频在线观看www | 国产精品美女一区二区 | 四虎永久免费网站 | 中文字幕日本亚洲欧美不卡 | 国产精品亚洲专区一区 | 亚洲欧美日韩在线不卡 | 人妻换人妻仑乱 | 欧洲美女黑人粗性暴交视频 | 国产一成人精品福利网站 | 一级毛片视频免费 | 日韩精品久久无码中文字幕 | 日本久久高清一区二区三区毛片 | 欧美日韩精品在线播放 | 成年在线网站免费观看无广告 | 一级性片 | 91亚洲国产成人精品性色 | 日本边添边摸边做边爱喷水 | 曰曰摸天天摸人人看久久久 | 毛片毛片毛片毛片出来毛片 | 久久天天躁狠狠躁夜夜免费观看 | 日韩在线一区二区三区视频 | 四虎影在线永久免费观看 | 久久国产视频网站 | 丰满人妻一区二区三区免费视频 | 欧美视频在线视频 | 日本看片网 | 欧美一区二区三区综合色视频 | 国产91热爆ts人妖在线 |