Bud*_*Joe 10 sql t-sql sql-server-2005
如果UNION ALL是一个除了在T-SQL.减法的等价物是什么?
例如,如果我有一个表PEOPLE和一个表EMPLOYEES.而且我知道,如果我删除EMPLOYEES记录,PEOPLE我将离开我的公司CONTRACTORS.
有没有办法做到这一点类似UNION ALL?我不需要指定任何字段名称的地方?我问的原因是这只是一个假设的例子.我需要对很多不同的表做几次这样的事情.假设的模式EMPLOYEES和PEOPLE是相同的.
Eri*_*ess 12
您可以使用EXCEPT运算符从另一个运算符中减去一个集合.这是使用EMPLOYEES和PEOPLE临时表的代码示例.据我所知,您需要在EXCEPT运算符中使用字段名称.
CREATE TABLE #PEOPLE
(ID INTEGER,
Name NVARCHAR(50))
CREATE TABLE #EMPLOYEE
(ID INTEGER,
Name NVARCHAR(50))
GO
INSERT #PEOPLE VALUES (1, 'Bob')
INSERT #PEOPLE VALUES (2, 'Steve')
INSERT #PEOPLE VALUES (3, 'Jim')
INSERT #EMPLOYEE VALUES (1, 'Bob')
GO
SELECT ID, Name
FROM #PEOPLE
EXCEPT
SELECT ID, Name
FROM #EMPLOYEE
GO
Run Code Online (Sandbox Code Playgroud)
最终查询将返回PEOPLE表中的两行,这两行在EMPLOYEE表中不存在.
Tom*_*m H 11
SELECT
P.*
FROM
People P
LEFT OUTER JOIN Employees E ON
E.ID = P.ID -- Or whatever your PK-FK relationship is
WHERE
E.ID IS NULL
Run Code Online (Sandbox Code Playgroud)
对于SQL Server,这可能是您可以执行它的最高性能方式.
| 归档时间: |
|
| 查看次数: |
36926 次 |
| 最近记录: |