gpt4 book ai didi

c# - 仅当@variable 为空时才选择联合,使用 SQL 存储过程

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:51 26 4
gpt4 key购买 nike

我有一个包含以下 UNION SELECT 的存储过程。我希望第二个选择仅在@name 为空时运行。

CREATE PROCEDURE [dbo].[spNames]
@name NVARCHAR(20)
AS
SET NOCOUNT ON;
SELECT names FROM namesTbl1
UNION SELECT names FROM namesTbl2 //This should run only if @name = ''

感谢任何帮助

最佳答案

您可以使用if。但是如果你想要一个单一的查询:

SELECT names FROM namesTbl1
UNION
SELECT names FROM namesTbl2 WHERE @name = '';

注意:因为您使用的是 UNION,所以这将从第一个表中删除重复项(如果有的话)。所以,if 更有效:

if (@name = '')
begin
SELECT names FROM namesTbl1;
end;
else
begin
SELECT names FROM namesTbl1
UNION
SELECT names FROM namesTbl2;
end;

关于c# - 仅当@variable 为空时才选择联合,使用 SQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34860871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com