sql - 在 SQL 查询中加入条件语句

标签 sql sql-server database conditional

我有这样的场景,我需要在条件中添加我的加入

例如当值为 1 时,则内部连接到表 a,如果值为 2,则内部连接到表

下面是我的示例查询,我收到错误Incorrect syntax near the keyword 'inner'

DECLARE @i INT=1
select name from emp
if(@i=1) 
begin
inner join a on a.ID=emp.ID
end
else if(@i=1) 
begin
inner join b on b.ID=emp.ID
end
where emp.ID=2

谢谢

最佳答案

这行得通吗?在两个条件下外部连接两个表,并将条件放在您的选择子句中,如下所示:

select name, case when @i=1 then a.column else b.column end from emp
left outer join a on a.ID=emp.ID
left outer join b on b.ID=emp.ID
where emp.ID=2

关于sql - 在 SQL 查询中加入条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1529829/

相关文章:

mysql - 带计数的 SQL 复杂查询

python - 通过表单将表情符号添加到数据库时出现不正确的字符串错误

sql-server - SQL 服务器 : Auto increment char pk

java - 如何使用DBFlow进行迁移?

sql - 'OOP languages are organized around graphs' 是什么意思?

SQL Server ISNULL/Coalesce 仍然返回空列表

SQL 计算平均值

sql-server - 这是原子更新吗?为什么方法更好

php - Laravel 使用多个 where 子句选择数据并返回任何数据透视表数据

excel - 使用数据库时如何使用 Anylogic 对象 (INode) 作为类型