请有人帮我理解WITH子句的使用
WITH T(Id) AS
(SELECT DISTINCT
[IO].[IncidentQuestionId]
FROM
[dbo].[IncidentValue] AS IV
INNER JOIN
[dbo].[IncidentOption] AS [IO] ON [IV].[IncidentOptionId] = [IO].[Id]
WHERE
[IV].[IncidentId] = 45
)
SELECT
IQ.*, IC.[Name] AS [IncidentCategory]
FROM
IncidentQuestion] AS IQ
INNER JOIN
T ON [T].[Id] = IQ.[Id]
INNER JOIN
[dbo].[IncidentCategory] AS IC ON IQ.[IncidentCategoryId] = IC.[Id]
WHERE
IQ. [IsOption] = 0
ORDER BY
IC.[OrderId] ASC, IQ.[OrderId] ASC
我上面的查询使用了with子句但我不知道使用with子句。
感谢名单
答案 0 :(得分:2)
这是Common Table Expressions的语法。阅读文档Using Common Table Expressions
答案 1 :(得分:2)
它用于创建Common Table Expression,它返回SELECT语句的结果,然后可以在另一个SQL语句中使用。 我使用它们来生成更好的可读SQL代码。
答案 2 :(得分:0)
有时,WITH
子句用于强制查询使用索引。