其实我米begineer到SQL XML路径,以便使我的专业,有一个场景...... 我有一个CTE功能结果SQL XML路径转换结果错误
Data Chars NumberOfOccurance
12 1 1 appears (1) times
12 2 2 appears (1) times
xx x x appears (2) times
和CTE功能是:
;with cte as
(
select Data , SUBSTRING(Data,1,1) as Chars,1 as startpos from @t
union all
select Data, SUBSTRING(Data, startpos+1,1) as char,startpos+1 from cte where startpos+1<=LEN(data)
)
select Data,Chars,Cast(Chars as varchar(1)) + ' appears (' + cast(COUNT(*) as varchar(5))+ ') times' as 'NumberOfOccurance' from cte
group by data, chars
其实我只想让我的回答这个:
data Number_of_occurances
12 1 appears (1) times 2 appears (1) times
xx x appears (2) times
我公顷已经尝试这样的:
; With Ctea as
(
select Data , SUBSTRING(Data,1,1) as Chars,1 as startpos from @t
union all
select Data, SUBSTRING(Data, startpos+1,1) as char,startpos+1 from ctea where startpos+1<=LEN(data)
)
select Data,Chars,REPLACE((SELECT (Cast(Chars as varchar(1)) + ' appears (' + cast(COUNT(*) as varchar(5))+ ') times') AS [data()] FROM Ctea t2 WHERE t2.Data = t1.data FOR XML PATH('')), ' ', ' ;') As Number_of_occurances from ctea as t1
group by t1.data, t1.Chars
它说:
Column 'Ctea.Chars' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
当我使用临时表,并让我确切的答案,但不能做它CTE
谁能让我的结果?