2014-02-27 66 views
0

您好我正在写Oracle查询,支持选择所有条款我的查询是这样的甲骨文条件内条款

SELECT * FROM country 
WHERE 
country_id in(IF('test' = 'test',(1,2,3),true)) 

如果条件(“测试” =“测试”)是真的,那么它应该火查询像

SELECT * FROM country WHERE country_id in(1,2,3) 

否则它应该火查询

SELECT * FROM country WHERE country_id in(true) 

回答

1

如果我正确你需要什么,你将有不懂·其分成2个条件:

SELECT * 
    FROM country 
    WHERE(('test'='test')AND(country_id IN (1,2,3))) 
    OR(('test'<>'test')AND(country_id<>0)) 
+0

是这样的..但甲骨文提供了错误的'“TRUE”:无效identifier',因为ORCALE不支持布尔类型 – Vikas

+0

对于ORACLE的一切,是0是假的并且<> 0是正确的。所以条件应该是country_id <> 0。 – Ziouas