Sql server T-SQL数据透视错误:';0';
我不确定我在代码中做错了什么。我收到一条错误消息: 味精102,第15级,状态1,第82行Sql server T-SQL数据透视错误:';0';,sql-server,tsql,pivot,Sql Server,Tsql,Pivot,我不确定我在代码中做错了什么。我收到一条错误消息: 味精102,第15级,状态1,第82行 “0”附近的语法不正确 有人能帮我找出我的错误吗?我正在尝试透视表,以便查询返回带有年龄组而不是行的标题 SELECT * FROM (SELECT ID, CASE WHEN Age BETWEEN 0 AND 4 THEN '0-4 Years' WHEN Age BETWEEN 5 AND 24 TH
“0”附近的语法不正确 有人能帮我找出我的错误吗?我正在尝试透视表,以便查询返回带有年龄组而不是行的标题
SELECT *
FROM
(SELECT
ID,
CASE
WHEN Age BETWEEN 0 AND 4 THEN '0-4 Years'
WHEN Age BETWEEN 5 AND 24 THEN '5-24 Years'
WHEN Age BETWEEN 25 AND 49 THEN '25-49 Years'
WHEN Age BETWEEN 50 AND 64 THEN '50-64 Years'
WHEN Age > 64 THEN '> 64 Years'
END AS GroupAge
FROM
#AD) t
PIVOT
(COUNT(ID)
FOR GroupAge IN
(0-4 Years,5-24 Years,25-49 Years,> 64 Years)
) AS pvt
将方括号[]放在数据透视列名周围
PIVOT
(
COUNT(ID)
FOR GroupAge IN
([0-4 Years],[5-24 Years],[25-49 Years],[50-64 Years],[> 64 Years])
) AS pvt
将方括号[]放在数据透视列名周围
PIVOT
(
COUNT(ID)
FOR GroupAge IN
([0-4 Years],[5-24 Years],[25-49 Years],[50-64 Years],[> 64 Years])
) AS pvt
该错误导致您需要在轴列中使用方括号,因为
0-4年
。。列不是普通字符串
我将使用条件聚合函数do pivot
SELECT
COUNT(CASE WHEN Age BETWEEN 0 AND 4 THEN ID END) '0-4 Years',
COUNT(CASE WHEN Age BETWEEN 5 AND 24 THEN ID END) '5-24 Years' ,
COUNT(CASE WHEN Age BETWEEN 25 AND 49 THEN ID END) '25-49 Years',
COUNT(CASE WHEN Age BETWEEN 50 AND 64 THEN ID END) '50-64 Years',
COUNT(CASE WHEN Age > 64 THEN ID END) '> 64 Years'
FROM #AD
该错误导致您需要在轴列中使用方括号,因为
0-4年
。。列不是普通字符串
我将使用条件聚合函数do pivot
SELECT
COUNT(CASE WHEN Age BETWEEN 0 AND 4 THEN ID END) '0-4 Years',
COUNT(CASE WHEN Age BETWEEN 5 AND 24 THEN ID END) '5-24 Years' ,
COUNT(CASE WHEN Age BETWEEN 25 AND 49 THEN ID END) '25-49 Years',
COUNT(CASE WHEN Age BETWEEN 50 AND 64 THEN ID END) '50-64 Years',
COUNT(CASE WHEN Age > 64 THEN ID END) '> 64 Years'
FROM #AD
你能提供一些样本数据和预期结果吗?你能提供一些样本数据和预期结果吗?