Kar*_*arl 4 sql join subquery sql-server-2008
在SQL Server 2008中:
我有一张桌子,我想沿着以下几行做一些事情:
SELECT T1.stuff, T2.morestuff from
(
SELECT code, date1, date2 from Table
) as T1
INNER JOIN
(
SELECT code, date1, date2 from Table
) as T2
ON T1.code = T2.code and T1.date1 = T2.date2
Run Code Online (Sandbox Code Playgroud)
这两个子查询完全相同.有没有办法在不重复子查询脚本的情况下做到这一点?
谢谢
卡尔
CTE:
;WITH YourQuery AS
(
SELECT code, date1, date2 from Table
)
SELECT
T1.stuff, T2.morestuff
from YourQuery T1
INNER JOIN YourQuery T2 ON T1.code = T2.code and T1.date1 = T2.date2
Run Code Online (Sandbox Code Playgroud)
FYI
在该问题中,代码使用派生表,也称为内联视图.子查询是一个SELECT查询,它返回单个值并嵌套在SELECT,INSERT,UPDATE或DELETE语句中,或嵌套在另一个子查询中.子查询可以在允许表达式的任何地方使用.请参阅:http://msdn.microsoft.com/en-us/library/aa213252(SQL.80).aspx