我的SQL错了还是sqlfiddle?

时间:2016-04-30 21:26:37

标签: mysql

我正试图在MySQL中更好地围绕PIVOT。我在SQLfiddle中创建了一个test table and query,但我没有让它工作。我收到错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'PIVOT(COUNT p。[stat] FOR p。[title] IN(p。[title],p。[weight],   p。[第3行的长度]

表格和数据:

CREATE TABLE pivoter (
  amount int,
  title varchar(20),
  weight int,
  length int,
  stat varchar(10)
);

INSERT INTO pivoter VALUES (5, 'Blip', 13, 5, 'hold');
INSERT INTO pivoter VALUES (2, 'Crog', 10, 5, 'full');
INSERT INTO pivoter VALUES (2, 'Gump', 22, 1, 'hold');
INSERT INTO pivoter VALUES (10, 'Yark', 7, 12, 'fun');
INSERT INTO pivoter VALUES (0, 'Blim', 6, 1, 'full');
INSERT INTO pivoter VALUES (3, 'Fron', 5, 8, 'hold');
INSERT INTO pivoter VALUES (8, 'Xand', 2, 7, 'fun');
INSERT INTO pivoter VALUES (2, 'Xnor', 7, 9, 'hold');
INSERT INTO pivoter VALUES (4, 'Rugg', 7, 8, 'fun');
INSERT INTO pivoter VALUES (9, 'Lint', 4, 10, 'fun');
INSERT INTO pivoter VALUES (9, 'Pawn', 7, 2, 'hold');
INSERT INTO pivoter VALUES (0, 'Undr', 12, 11, 'hold');
INSERT INTO pivoter VALUES (14, 'Call', 1, 6, 'full');

透视查询:

select stat, title, weight, length, amount from pivoter p

PIVOT
(
  COUNT p.[stat]
  FOR p.[title]
  IN (p.[title], p.[weight], p.[length], p.[amount])
) AS testedPivot;

如果您想知道,不,数据不应该有意义。我只是垃圾来试试这个。

  • 我的查询或sqlfiddle有问题吗?
    • 如果是我的询问我该怎么做才能使这项工作?
    • 如果问题是sqlfiddle,你知道另一种选择吗?

1 个答案:

答案 0 :(得分:1)

问题中的查询看起来像Microsoft SQL Server的T-SQL语法。

这种语法在MySQL中无效,原因有两个。

PIVOT不是MySQL中的有效关键字。

MySQL使用反引号来转义标识符,而不是方括号。