BIC*_*ube 8 sql-server sql-server-2008-r2
我有两张桌子说MyFull和MyEmpty.我需要对两个表中的所有记录进行组合.有时,MyEmpty表可能没有记录,在这种情况下我需要返回所有记录MyFull.这是我尝试过的:
--Q1 >> returns no results
SELECT *
FROM MyFull CROSS JOIN MyEmpty
--Q2 >> returns no results
SELECT *
FROM MyFull, MyEmpty
Run Code Online (Sandbox Code Playgroud)
我虽然使用LEFT JOIN但我没有共同的钥匙加入.这是一个SQLFiddle
Joe*_*orn 13
试试这个:
SELECT *
FROM MyFull
LEFT JOIN MyEmpty ON 1=1
Run Code Online (Sandbox Code Playgroud)
虽然请注意,如果您有多个记录MyEmpty,它将MyFull为每个记录重复一次记录MyEmpty.实际上,结果中的记录数是MyFull*MyEmpty(除非MyEmpty没有记录).
全表:
declare @t table (Spot int,name varchar(1),pct int)
insert into @t(Spot,name,pct)values(1,'A',2),(1,'B',8),(1,'C',6),(2,'A',4),(2,'B',5),(3,'A',5),(3,'D',1),(3,'E',4)
Run Code Online (Sandbox Code Playgroud)
空表:
declare @tt table (Spot int,name varchar(1),pct int)
select * from @t OUTER APPLY @tt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5669 次 |
| 最近记录: |