首页 > 解决方案 > 函数中的sql if语句

问题描述

我在 Visual Basic 中有一个功能,我正在将 a 和 b 变量发送到该功能中。它做了很多选择语句,如下所示:

SQL 代码

Select xxx where a=@a

union

Select yyy where u=@a

我想用 if 语句再添加一个联合。我想运行一个部分if @b=1和另一个部分if @b=2

union

if @b=1

select zzz

if @b=2

select ttt

我想学习如何将 union 与 if 语句一起使用以及它的正确语法。

union

    if @b=1
begin

    select zzz
end

    else if( @b=2)

    select ttt
end

这是对的吗?

谢谢。

标签: sqlif-statementswitch-statement

解决方案


我认为您可以将支票放在WHERE条款中。如果它们现在失败,则会选择行,因此不会将任何行添加到整体结果中。

...
UNION
SELECT ...
       WHERE @b = 1
UNION
SELECT ...
       WHERE @b = 2;

推荐阅读