gpt4 book ai didi

sql - 在 SQL SELECT 语句中给出条件

转载 作者:行者123 更新时间:2023-12-04 14:10:00 27 4
gpt4 key购买 nike

我必须根据条件运行 SQL 查询。
有 2 个 AND 条件只有在满足它们的 if 条件时才需要执行。我们可以在这里使用 CASE 语句吗?如果是这样怎么办?或者还有其他方法吗??

SELECT * FROM MyTable
WHERE col1=@val1

if condition1 here
AND col2 = @val2
end if

if condition2 here
AND col3 = @val3
end if

任何人都可以帮我解决这个问题。我正在使用 sql server 2005。

最佳答案

在您的查询中包含它们,如下所示:

SELECT * FROM MyTable
WHERE col1=@val1
And (Not Condition1 Or col2 = @val2)
And (Not Condition2 Or col3 = @val3)

因此,如果 Not Not Condition1(意思是:Condition1 为真)那么 col2(必须)= @val2。

(我将第二个条件逻辑更改为 AND col3 = @val3,因为您重复了 AND col2 = @val2)

编辑 回应评论:
给我一个条件1的标准的例子。如果在 t-sql 中的查询中未使用语法,则显式。假设“以前的订单”必须小于 20 才能使第一个条件起作用,并且 . . .如果没有名字,第二个标准很重要。应该是:
SELECT * FROM MyTable
WHERE col1=@val1
And (MyTable.OrderCount > 19 Or col2 = @val2)
And ((Not MyTable.FirstName Is Null) Or col3 = @val3)

不要认为“如果这种情况是真的,这个标准很重要”。所有重要的因素都包含在 where 子句中。您必须了解 Or/And/Not 和操作顺序。这需要练习才能变好。如果您必须花几分钟仔细考虑,请不要担心,我们其他人有时也是如此。

关于sql - 在 SQL SELECT 语句中给出条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2014698/

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