Sql 选择不存在特定代码的数字

Sql 选择不存在特定代码的数字,sql,oracle,Sql,Oracle,我想选择COD='GV'的所有数字,但也要选择代码'GV'不存在的数字。。。例如,4170号 COD NUM ---- ---- GV 4168 SERV 4168 GV 4169 SERV 4169 SERV 4170 SERV 4171 GV 4171 逐字逐句地抄写你的要求: -- numbers for COD = GV select num from your_table where cod = 'GV' unio

我想选择COD='GV'的所有数字,但也要选择代码'GV'不存在的数字。。。例如,4170号

COD  NUM 
---- ----   
GV   4168    
SERV 4168    
GV   4169    
SERV 4169    
SERV 4170    
SERV 4171    
GV   4171
逐字逐句地抄写你的要求:

-- numbers for COD = GV
select num
from your_table
where cod = 'GV'
union
-- numbers for COD <> GV
select num
from your_table
where cod <> 'GV

基本上,您需要所有数字,而不考虑COD值。

您可以使用分区外部联接:

边界最小值为,最大值为 选择MIN num, 最大数 从测试数据 选择t.COD, n、 NUM 从…起 选择min_num+LEVEL-1作为num 无限
按级别连接我真的希望所有代码为“GV”的数字和不存在代码为“GV”的数字,部分是有效的,但只要我需要更多字段,它们就会重复。您能根据您目前提供的输入提供所需的输出吗?如果您修改了样本数据并包含更多字段,这样我们就可以看到您所说的复制是什么意思了。@AntonioDelicadoLópez。这回答了你在这里提出的问题——我认为答案应该被接受。如果你有不同的问题,问一个新问题。
select distinct num
from your_table;
COD | NUM :-- | ---: GV | 4170