Sql 如何根据条件选择左连接
我正在尝试根据SQL Server数据库中的条件运行左联接。代码如下:Sql 如何根据条件选择左连接,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试根据SQL Server数据库中的条件运行左联接。代码如下: DECLARE @DB as nvarchar(25) $DB = 'db1' --I can just reset this from time to time SELECT h.name, h.address, w.status FROM [db0].[dbo].[orec] h IF ($DB = 'db1') BEGIN LEFT JOIN [db1].[dbo].[oabc] w on h.id =
DECLARE @DB as nvarchar(25)
$DB = 'db1' --I can just reset this from time to time
SELECT h.name, h.address, w.status
FROM [db0].[dbo].[orec] h
IF ($DB = 'db1')
BEGIN
LEFT JOIN [db1].[dbo].[oabc] w on h.id = w.id
END
ELSE
BEGIN
LEFT JOIN [db2].[dbo].[oabc] w on h.id = w.id
END
您可以尝试条件联接:
SELECT h.[name], h.[address], coalesce(w1.[status],w2.[status]) [status]
FROM [db0].[dbo].[orec] h
LEFT JOIN [db1].[dbo].[oabc] w1 on h.id = w1.id and @DB = 'db1'
LEFT JOIN [db2].[dbo].[oabc] w2 on h.id = w2.id and @DB != 'db1';
您可以尝试条件联接:
SELECT h.[name], h.[address], coalesce(w1.[status],w2.[status]) [status]
FROM [db0].[dbo].[orec] h
LEFT JOIN [db1].[dbo].[oabc] w1 on h.id = w1.id and @DB = 'db1'
LEFT JOIN [db2].[dbo].[oabc] w2 on h.id = w2.id and @DB != 'db1';
我假设
$DB
实际上应该是@DB
?但无论如何,您不能在查询中使用条件语句。我假设$DB
实际上应该是@DB
?但无论如何,您不能在查询中使用条件语句。