作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的 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/
我是一名优秀的程序员,十分优秀!