[英]pivot varchar columns in SQL Server?
我試圖將一些結果放入數據透視表但沒有得到預期的結果。在這里我已經把代碼和結果。
DECLARE @TblIdeaCategory TABLE
(
IdeaImplement varchar(2000),
IdeaCategory varchar(2000)
)
INSERT INTO @TblIdeaCategory values('Metrics Feedback One #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Metrics Feedback Two #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback One #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback Two #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback One #1','IdeaGenerationFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback Two #1','IdeaGenerationFeedback')
select
IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback from
(select IdeaImplement,IdeaCategory
from @TblIdeaCategory as board
) resultTable
pivot (
max(IdeaImplement) for IdeaCategory in (IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback)) as resultpivot
select IdeaImplement,IdeaCategory from @TblIdeaCategory
以下查詢應該執行您想要的操作:
DECLARE @TblIdeaCategory TABLE
(
IdeaImplement varchar(2000),
IdeaCategory varchar(2000)
)
INSERT INTO @TblIdeaCategory values('Metrics Feedback One #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Metrics Feedback Two #1','MetricFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback One #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Analysis Feedback Two #1','AnalysisFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback One #1','IdeaGenerationFeedback')
INSERT INTO @TblIdeaCategory values('Idea Generation Feedback Two #1','IdeaGenerationFeedback')
select
IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback from
(select IdeaImplement,IdeaCategory,ROW_NUMBER() OVER(PARTITION BY IdeaCategory ORDER BY (SELECT 1)) AS RNO
from @TblIdeaCategory as board
) resultTable
pivot (
MAX(IdeaImplement) for IdeaCategory in (IdeaGenerationFeedback,AnalysisFeedback,MetricFeedback)) as resultpivot
結果如下,
IdeaGenerationFeedback AnalysisFeedback MetricFeedback
Idea Generation Feedback One #1 Analysis Feedback One #1 Metrics Feedback One #1
Idea Generation Feedback Two #1 Analysis Feedback Two #1 Metrics Feedback Two #1
我認為你實際上想要在這里使用UNPIVOT
而不是PIVOT
,但無論如何你可以使用一系列聯盟,無論如何它們可能會表現得更好。
SELECT IdeaGenerationFeedback AS IdeaImplement, 'IdeaGenerationFeedback' AS IdeaCategory
FROM yourOriginalTable
UNION ALL
SELECT AnalysisFeedback, 'AnalysisFeedback' FROM yourOriginalTable
UNION ALL
SELECT MetricFeedback, 'MetricFeedback' FROM yourOriginalTable;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.