【发布时间】:2021-12-29 21:17:55
【问题描述】:
我正在尝试从我创建的临时表在 Azure Data Studio 中运行查询。但是,在我的 SELECT 语句中,它无法识别列名。 SELECT 语句中的列名(即FirstPlayer, SecondPlayer, Score)带有红色下划线,查询返回为无效。
知道如何更改语法以使其运行吗?
IF OBJECT_ID('tempdb.dbo.#GameScores','U') IS NOT NULL
DROP TABLE #GameScores;
GO
CREATE TABLE #GameScores
(
FirstPlayer VARCHAR(10),
SecondPlayer VARCHAR(10),
Score INTEGER
);
GO
INSERT INTO #GameScores
VALUES ('Joe','Ryan', 120),
('Sue', 'Jackie', 200),
('Ryan', 'Sue', 50),
('Ryan', 'Joe', 100);
GO
SELECT DISTINCT
FirstPlayer,
SecondPlayer,
IF(Score = MAX(Score), MAX(Score) + 20, Score) AS Score
FROM
#GameScores
WHERE
SecondPlayer NOT LIKE "JO%"
OR Points <> 100
【问题讨论】:
-
没有
if,而是iif,但更重要的是你应该转换聚合函数信息window functions,类似于max(score) over (partition by FirstPlayer, SecondPlayer)。 -
MAX(Score)指的是什么,最大行数?
标签: sql sql-server azure-data-studio