2015-04-28 50 views
3

一个数倍我需要一点点帮助,我有下一个情况:SELECT SQL中,N

SELECT MULTI, N FROM TABLE; 

选择的结果:

MULTI N 
14  5 
13  10 
13  10 
5  5 
14  7 

在这种情况下,我只想要

if (N % MULTI == 0),所以55将是有效的,并且714太:匹配类似的东西的结果。

我不知道如何在我的WHERE中做到这一点。我希望你能帮助我。非常感谢!

回答

1

可以使用MOD功能如下

SELECT MULTI, N 
FROM TAB 
WHERE MOD(MULTI,N) = 0; 

SqlFiddle Demo

+0

它的工作非常感谢。但即时通讯使用别名,我不能把他们放在哪里,我应该做什么来放置别名? – Rguy

+0

@Rguy您不能在'WHERE'子句中使用别名,您需要使用别名的完整表达式insetad。 – Parado

+0

问题是,N是类似的东西在我的查询: CASE X + 10 = 40,然后5 X + 20 = 30 THEN 7 而且我不知道该如何在那里 – Rguy

0

在Oracle中,你可以使用国防部。

select MULTI,N, 
CASE 
    WHEN mod(N,MULTI)=0 THEN 
    'VALID' 
    ELSE 
    'INVALID' 
END AS MOD_TES 
from TABLE 
+0

我试过了,但我不能在这种情况下使用别名...有任何方法可以使用它? – Rguy