0

请任何人都可以帮助我理解 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 子句。

谢谢

4

3 回答 3

2

它是公用表表达式的语法。阅读文档使用公用表表达式

于 2013-07-02T07:13:33.037 回答
2

它用于创建一个Common Table Expression,它返回一个 SELECT 语句的结果,然后可以在另一个 SQL 语句中使用。我使用它们来生成可读性更好的 SQL 代码。

于 2013-07-02T07:14:22.417 回答
0

有时,WITH子句用于强制查询使用索引。

于 2013-07-02T07:21:15.423 回答