gpt4 book ai didi

sql - IF 内部 WHERE 与存储过程

转载 作者:行者123 更新时间:2023-12-02 05:13:43 29 4
gpt4 key购买 nike

我有一个如下所示的 WHERE 语句:

WHERE 
((@Value1 IS NULL AND [value1_id] IS NULL) OR [value1_id] = ISNULL(@Value1, [value1_id]))
AND
((@Value2 IS NULL AND [value2_id] IS NULL) OR [value2_id] = ISNULL(@Value2, [value2_id]))
AND
((@Value3 IS NULL AND [value3_id] IS NULL) OR [value3_id] = ISNULL(@Value3, [value3_id]))
AND
((@Value4 IS NULL AND [value4_id] IS NULL) OR [value4_id] = ISNULL(@Value4, [value4_id]))
AND
((@Value5 IS NULL AND [value5_id] IS NULL) OR [value5_id] = ISNULL(@Value5, [value5_id]))
AND
((@Value6 IS NULL AND [value6_id] IS NULL) OR [value6_id] = ISNULL(@Value5, [value6_id]))

我需要在 WHERE 中添加一些条件逻辑,这样我就可以用 Value5 和 Value6 做一些特殊的事情。基本上,如果 Value5、Value6 或其他值为 null,我想按原样使用 Value 5 和 Value 6 行。如果所有三个值都不为 NULL,我需要对这些值运行一些计算。

关于最佳操作的任何想法?

最佳答案

用例

"CASE 可以用在任何允许有效表达式的语句或子句中。例如,您可以在 SELECT、UPDATE、DELETE 和 SET 等语句中以及 select_list、IN、WHERE、ORDER 等子句中使用 CASE通过和拥有。”

http://msdn.microsoft.com/en-us/library/ms181765.aspx

您可以像这样在 SELECT 中执行计算:

SELECT
CASE
WHEN @Value7 is not null THEN @Value7 * 100
ELSE Value7 * 100
END
FROM #T
WHERE (@Value1 is null and Value1 is null)
AND (@Value2 is null and Value2 is null)

目前还不是很清楚您到底想完成什么。 WHERE 不在 SELECT 中吗?如果以上不正确,请提供一个清晰、简洁的示例。

关于sql - IF 内部 WHERE 与存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967397/

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