经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
动态表名,列名,输入参数,输出参数等
来源:cnblogs  作者:Insus.NET  时间:2019/5/20 10:35:07  对本文有异议

本例实现动态表名,列名,输入参数,输出参数等进行操作。

先准备一些数据:

  1. IF OBJECT_ID('tempdb.dbo.#Part') IS NOT NULL DROP TABLE #Part
  2. CREATE TABLE #Part (
  3. [ID] INT,
  4. [Item] NVARCHAR(40),
  5. [Category] NVARCHAR(25),
  6. [Qty] DECIMAL(18,2)
  7. )
  8. INSERT INTO #Part ([ID],[Item],[Category],[Qty]) VALUES (23394,'I32-GG443-QT0098-0001','S',423.65),
  9. (45008,'I38-AA321-WS0098-0506','B',470.87),
  10. (14350,'K38-12321-5456UD-3493','B',200.28),
  11. (64582,'872-RTDE3-Q459PW-2323','T',452.44),
  12. (23545,'098-SSSS1-WS0098-5526','S',500.00),
  13. (80075,'B78-F1H2Y-5456UD-2530','T',115.06),
  14. (53567,'PO0-7G7G7-JJY098-0077','Q',871.33),
  15. (44349,'54F-ART43-6545NN-2514','S',934.39),
  16. (36574,'X3C-SDEWE-3ER808-8764','Q',607.88),
  17. (36574,'RVC-43ASE-H43QWW-9753','U',555.19)
  18. GO
  19. SELECT [ID],[Item],[Category],[Qty] FROM #Part
  20. GO
Source Code

 

要求是提取以[Category] 为??的[Qty]总数。另外本例要求是动态提取。

 

  1. DECLARE @table_name SYSNAME = '#Part',
  2. @groupby_column SYSNAME = '[Category]',
  3. @sum_column SYSNAME = '[Qty]',
  4. @param_value NVARCHAR(2) = N'S',
  5. @output_result DECIMAL(18,2)
  6. DECLARE @sql NVARCHAR(MAX) = N'
  7. SELECT @output_result = SUM('+ @sum_column +')
  8. FROM '+ @table_name +'
  9. WHERE '+ @groupby_column +' = @param_value
  10. GROUP BY '+ @groupby_column +''
  11. EXECUTE sp_executesql @sql,
  12. N'@param_value NVARCHAR(2),@output_result DECIMAL(18,2) OUTPUT',
  13. @param_value,@output_result OUTPUT
  14. SELECT @output_result
Source Code

 

原文链接:http://www.cnblogs.com/insus/p/10892356.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号