Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
Database oracle仅更新第一次_Database_Oracle - Fatal编程技术网

Database oracle仅更新第一次

Database oracle仅更新第一次,database,oracle,Database,Oracle,我有一张有两列的表 rule_id , passenger_type 与 我正在尝试更新乘客信息,CNN在哪里 乘客输入(“C02”、“C03”、“C04”) 但每个规则id只出现第一次 update dg_test d set passenger_type = 'CNN' where (d.rule_id, d.passenger_type) in (select x.rule_id, min(x.passenger_type )

我有一张有两列的表

rule_id , passenger_type 

我正在尝试更新乘客信息,CNN在哪里 乘客输入(“C02”、“C03”、“C04”)

但每个规则id只出现第一次

update dg_test d
set passenger_type  = 'CNN'
where (d.rule_id, d.passenger_type) in (select x.rule_id, min(x.passenger_type )
                                        from dg_test x
                                        where x.rule_id = d.rule_id
                                        group by x.rule_id)
我正在使用oracle数据库

例如:

+--------------------------+
| rule_id   passenger_type |
+--------------------------+
| 1         ADT            |
| 1         CH2            |
| 2         SWR            |
| 3         INF            |
| 1         CH3            |
| 2         CH4            |
| 2         CH3            |
| 3         ADT            |
+--------------------------+
预期结果:

+--------------------------+
| rule_id   passenger_type |
+--------------------------+
| 1         ADT            |
| 1         CNN            |
| 2         SWR            |
| 3         INF            |
| 1         CH3            |
| 2         CNN            |
| 2         CH3            |
| 3         ADT            |
+--------------------------+

如果表中没有适当的序列,“首次出现”的概念有点模糊,但这会为每个规则id更新一行

update dg_test d
set passenger_type  = 'CNN'
where (d.rule_id, d.passenger_type) in (select x.rule_id, min(x.passenger_type )
                                        from dg_test x
                                        where x.rule_id = d.rule_id
                                        group by x.rule_id)

我只需要在乘客输入('C02'、'C03'、'C04')的情况下更新第一个事件。我更新了我的问题并添加了exmaple