Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle:从列中选择多个值,同时满足某些值的条件_Sql_Oracle - Fatal编程技术网

Sql Oracle:从列中选择多个值,同时满足某些值的条件

Sql Oracle:从列中选择多个值,同时满足某些值的条件,sql,oracle,Sql,Oracle,我在一个表中有一列COL,它的整数值如下:1,2,3,10,11。。。还有儿子。表中的唯一性由一个ID创建。每个ID可以与多个列值关联。比如说 ID | COL —————————— 1 | 2 ————+————— 1 | 3 ————+————— 1 | 10 ————+————— 这是有效的 我想做的是只从表中选择大于3的COL值,有问题的部分还选择最大值1、2和3(如果它们存在的话)。所以在上表中,我想选择值[3,10],因为10大于3,3=MAX3,

我在一个表中有一列COL,它的整数值如下:1,2,3,10,11。。。还有儿子。表中的唯一性由一个ID创建。每个ID可以与多个列值关联。比如说

 ID | COL
——————————
  1 |  2   
————+—————
  1 |  3   
————+—————
  1 | 10  
————+—————
这是有效的

我想做的是只从表中选择大于3的COL值,有问题的部分还选择最大值1、2和3(如果它们存在的话)。所以在上表中,我想选择值[3,10],因为10大于3,3=MAX3,2

我知道我可以用两条SQL语句来实现这一点,但这有点混乱。有没有办法只用一句话就能做到

SELECT col FROM table
WHERE
    col > 3
UNION
SELECT MAX(col) FROM table
WHERE
    col <= 3
此查询并不假定您需要每个id的结果,因为您没有明确提到它。 我认为您不需要pl/sql,sql就足够了