gpt4 book ai didi

sql-server - SQL Server 中带有条件 Where 子句的存储过程

转载 作者:行者123 更新时间:2023-12-01 22:16:26 25 4
gpt4 key购买 nike

我正在创建一个 SQL Server 存储过程。这是我正在构建的一个简单的 SELECT 查询。其中一个参数是寻找标志参数。如果该参数留空,则 SELECT 应默认为根本没有 WHERE 子句。

CREATE PROCEDURE sprocA
@flagInd int
AS
BEGIN
SELECT intID, strQuestion, strAnswer, intCategory, intOrder
FROM tblA
-- Right here is where I am looking for the logic of the @flagInd to be evaluated.....
-- if @flagInd = 1 then 'WHERE flgInd=1'
-- else if @flagInd=0 then 'WHERE flgInd=0'
-- else if @flagInd IS NULL then ''

这只是一个简单的查询和一个简单的想法,不确定是否可以在不嵌套和重写整个 SELECT 语句作为 IF 语句的一部分的情况下完成。

最佳答案

这可以像这样完成:

SELECT intID, strQuestion, strAnswer, intCategory, intOrder
FROM tblA
WHERE flgInd = @flgInd OR @flgInd IS NULL;

您还可以使用 CASE 表达式:

SELECT intID, strQuestion, strAnswer, intCategory, intOrder
FROM tblA
WHERE CASE
WHEN flgInd = @flgInd THEN 1
WHEN @flgInd IS NULL THEN 1
ELSE 0
END = 1;

关于sql-server - SQL Server 中带有条件 Where 子句的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447671/

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