以下是我的样本数据:
| 手术日期|房间_NM|服务中心_NM|外科医生_NM|
| --|--|--|--|
| 2022-08-07 00:00:00|房间1|骨科|Json,B B|
| 2022-08-11 10:00:00|室4|心脏病学|格伦角|
| 2022-08-09 00:00:00|室3|妇科|马丁河|
| 2022-08-11 10:00:00|室2|心脏病学|格伦角|
| 2022-08-07 00:00:00|室2|血管|约瑟夫湖|
| 2022-08-07 00:00:00|房间1|麻醉学|(空值)|
| 2022-08-11 10:00:00|室4|心脏病学|(空值)|
| 2022-08-07 00:00:00|房间1|骨科|(空值)|
| 2022-08-07 00:00:00|室2|头颈|(空值)|
| 2022-08-09 00:00:00|室3|妇科|(空值)|
| 2022-08-08 00:00:00|房间1|麻醉学|(空值)|
我的预期输出:
| 手术日期|房间_NM|服务中心_NM|外科医生_NM|
| --|--|--|--|
| 2022-08-07 00:00:00|房间1|骨科|Json,B B|
| 2022-08-11 10:00:00|室4|心脏病学|格伦角|
| 2022-08-09 00:00:00|室3|妇科|马丁河|
| 2022-08-11 10:00:00|室2|心脏病学|格伦角|
| 2022-08-07 00:00:00|室2|血管|约瑟夫湖|
| 2022-08-07 00:00:00|房间1|麻醉学|(空值)|
| 2022-08-11 10:00:00|室4|心脏病学|格伦角|
| 2022-08-07 00:00:00|房间1|骨科|Json,B B|
| 2022-08-07 00:00:00|室2|头颈|(空值)|
| 2022-08-09 00:00:00|室3|妇科|马丁河|
| 2022-08-08 00:00:00|房间1|麻醉学|(空值)|
对于Oracle SQL Developer,我想知道是否有一种方法可以将SURGEON_NM中的值(null)替换为来自行的SURGEON_NM的值,其中在SURGERY_DATE,ROOM_NM和SERVICE_NM中有相同的值。
即,在上面的第一个表中,表1和表8在列Surgery_DATE、ROOM_NM和SERVICE_NM中具有相同的值。第8行的SURGEON_NM为(空),而第1行的值为“Json,B”。有没有办法将第8行的(空)替换为“Json,B”?
我感谢任何帮助!
2条答案
按热度按时间ndh0cuux1#
使用
COALESCE
和MAX
解析函数:其中,对于样本数据:
输出:
| 手术日期|房间_NM|服务中心_NM|外科医生_NM|
| --|--|--|--|
| 2019 -08-07 00:00:00|房间1|麻醉学| * 空 *|
| 2019 -08-07 00:00:00|房间1|骨科|Json,B B|
| 2019 -08-07 00:00:00|房间1|骨科|Json,B B|
| 2019 -08-07 00:00:00|室2|头颈| * 空 *|
| 2019 -08-07 00:00:00|室2|血管|约瑟夫湖|
| 2019 -08- 18 00:00:00|房间1|麻醉学| * 空 *|
| 2019 -08- 29 00:00:00|室3|妇科|马丁河|
| 2019 -08- 29 00:00:00|室3|妇科|马丁河|
| 2019 -08-11 00:00:00|室2|心脏病学|格伦角|
| 2019 -08-11 00:00:00|室4|心脏病学|格伦角|
| 2022-08-11 00:00:00|室4|心脏病学|格伦角|
fiddle
fdx2calv2#
你说在那个表中还有其他列,但是它们的值是 distinct 的。如果有一些唯一的行标识符(例如 popular
ID
,这是我添加到示例数据中的),一种选择是使用分析函数。大概是这样的:样本数据:
查询方式: