我有一個視圖,我需要提供羣集索引問題是爲了提供羣集索引它不應該有任何的左或右外連接,我想用INNER連接替換LEFT外連接,我能想到的一種方法是在正確的表格中插入一個虛擬值,讓我們說-1,即使左邊表中的所有ID都不匹配INNER JOIN中右邊的表中的Ids,但由於我們已經在右表中插入-1,我們使用IsNULL(u.UserId,-1)它應該返回左表中的所有值,但不知何故,這種方法不起作用。如何用SQL中的INNER連接替換LEFT外部連接?
create table Users(
UserId int,
UserName nvarchar(255)
)
insert into Users values(1,'sid429')
insert into Users values(2,'ru654')
insert into Users values(3,'dick231')
create table managers
(
caseId int,
CaseName nvarchar(255),
UserId int
)
insert into managers values (100,'Case1',1)
insert into managers values (101,'Case2',2)
insert into managers values (-1,NULL,-1)
select username from users u inner join managers m on m.UserId=IsNULL(u.UserId,-1)
請參閱英文散文中的「句子」和「句點」。然後使用它們。 – philipxy
@philipxythank你非常想糾正我的語法,而不是提供一個解決方案我相信你已經理解了整個問題,即使是上面寫的語句。 –
你的語法不是問題。你不清楚。請閱讀並執行[mvce]。 – philipxy