SQL|动态SQL解决PIVOT透视多列的问题
【SQL|动态SQL解决PIVOT透视多列的问题】有时需要透视的列比较多,或不固定,用动态SQL可以很好地解决问题:
CREATE PROCEDURE [dbo].[usp_getErrWeightReportReceiver]
ASBEGIN
DECLARE @PLANTS VARCHAR(500)=''
DECLARE @SQL NVARCHAR(1000)SELECT @PLANTS = @PLANTS + '[' + VALUE + '],'
FROM (SELECT DISTINCT VALUE FROM [dbo].[errWeightMail] WHERE ID='FSL_MAILTO' AND VALUE='https://www.it610.com/article/QQ20') T
SET @PLANTS= LEFT(@PLANTS, LEN(@PLANTS)-1)
SET @SQL=
'WITH A AS(
SELECT ID,VALUE,VALUE PLANT,VALUE3 FROM [dbo].[errWeightMail] WHERE ID=''FSL_MAILTO'' AND VALUE=''QQ20''
)
SELECT PLANT,{0} FROM A
PIVOT(MIN(VALUE3) FOR VALUE IN({0}))T'
SET @SQL= REPLACE(@SQL,'{0}',@PLANTS)
EXEC sp_executesql @SQL
END
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spark|Spark 数据倾斜及其解决方案
- 解决SyntaxError:|解决SyntaxError: invalid syntax
- py连接mysql
- 2019-01-18Mysql中主机名的问题
- 动态组件与v-once指令