我有一个场景,就像我有两张名为tbl1
和tb2
的桌子
Select * from tbl1 t1 inner join tb2 t2 on t1.Id = t2.id
上面的示例查询我需要实现的是我需要根据条件执行此内连接。 (即)我将输入参数IsJoin
作为真意,我可以执行内连接。我不喜欢动态查询。如果有任何其他方法可以实现这一点,请告诉我。
提前致谢
答案 0 :(得分:0)
只有一种方法可以做到这一点 - 使用find path -type f -type f \( -name "*.jpg" -or -name "*.gif" \) -print |
while read FILE
do
# Process the $FILE
done
和IF
语句
ELSE
如果只是几个条件,那么使用多个语句就可以了,但是如果根据条件进行了大量的连接 - 它更容易维护动态SQL。它变得更具可读性。
答案 1 :(得分:0)
尝试这种方式:
declare @IsJoin numeric(1,0)
select @IsJoin = 1
Select * from tbl1 t1
left join tb2 t2 on t1.Id = t2.id
and @IsJoin = 1
答案 2 :(得分:0)
如果你需要保留t1和t2的所有列,无论是否加入
DECLARE @IsJoin bit = 1 -- 1 for true; 0 for false
SELECT
*
FROM
tbl1 t1
LEFT OUTER JOIN tbl2 t2 on t1.Id = t2.id and @IsJoin = 1
WHERE
(@IsJoin = 0 OR t2.id is not null) -- Keep the inner join behavior