Sql server 如何在where子句中编写多级条件
让我们假设,我有一列“Rate”,并且必须根据以下标准获取行。 下面的字符只是列Sql server 如何在where子句中编写多级条件,sql-server,Sql Server,让我们假设,我有一列“Rate”,并且必须根据以下标准获取行。 下面的字符只是列 如果X>Y,则取数率 如果A>B,那么 如果C>D,则取数率 如果E>F,那么 如果G>H,则取数率 如果I>J,则获取速率 如果K>L,那么 如果M>N,则取数率 如何在WHERE子句中编写多级条件,这一点我完全不确定我是否掌握了正确的方法,但听起来您只是想在WHERE子句中组合多个条件: WHERE X>Y OR ( A>B AND (
- 如果C>D,则取数率
- 如果E>F,那么
- 如果G>H,则取数率
- 如果I>J,则获取速率
- 如果K>L,那么
- 如果M>N,则取数率
如何在WHERE子句中编写多级条件,这一点我完全不确定我是否掌握了正确的方法,但听起来您只是想在WHERE子句中组合多个条件:
WHERE
X>Y OR
(
A>B AND
(
C>D OR
(
E>F AND
(
G>H OR
I>J OR
(K>L AND M>N)
)
)
)
)
并非所有括号都是严格必需的,但我通常更喜欢使用它们,而不是记住
和或或是否具有更高的优先级。我一点也不确定我是否得到了正确的结果,但听起来你只是想在WHERE
子句中组合多个条件:
WHERE
X>Y OR
(
A>B AND
(
C>D OR
(
E>F AND
(
G>H OR
I>J OR
(K>L AND M>N)
)
)
)
)
并非所有括号都是严格必需的,但我通常更喜欢使用它们,而不是记住和或或是否具有更高的优先级。要将contditions解析为SQL,可以使用一组简单的两条规则:
将“然后获取速率”更改为“或(…)”
将“then”改为“AND(…)”
因此,生成的SQL类似于:
select Rate
from ...
where (X > Y) OR
(A > B) AND
((C > D) OR
(E > F) AND
((G > H) OR
(I > J) OR
(K > L) AND
(M > N)))
要将条件解析为SQL,可以使用一组简单的两条规则:
将“然后获取速率”更改为“或(…)”
将“then”改为“AND(…)”
因此,生成的SQL类似于:
select Rate
from ...
where (X > Y) OR
(A > B) AND
((C > D) OR
(E > F) AND
((G > H) OR
(I > J) OR
(K > L) AND
(M > N)))
我正在尝试将其转换为SQL。。谢谢回复。我正在尝试将其转换为SQL。。谢谢你的回复。