[英]Oracle SQL - Querying a table with 2 values for the same column
我有一个要求,我必须按照以下条件从客户表中获取数据。
客户表中有客户ID列。操作,时间戳,范围
1.需要使用range查询客户表,该表提供特定范围的数据。
2,同一个客户ID可以有多行,因此要获取单行,必须满足以下条件:如果客户操作是更新的,则必须采取最新的行;如果操作是插入的,那么我们只需要考虑插入。
我使用多个查询来完成此操作,例如获取不同的客户ID,然后再次查询仅插入内容,并将客户ID放入数组中,然后使用剩余的客户ID再次查询以进行更新。 但是我觉得这可以通过更有效的方式完成,请问你们有谁能让我知道更好的解决方案吗?
您可以尝试以下查询。我不确定您是否希望在以下查询中使用。
用于插入
SELECT *
FROM customer_changes
WHERE action = 'I'
AND custidpub EXISTS (SELECT DISTINCT custidpub
FROM customer_changes
WHERE rangeid ='YOUR_RANGE')
更新
SELECT *
FROM customer_changes
WHERE action = 'U'
AND custidpub EXISTS (SELECT DISTINCT custidpub
FROM customer_changes
WHERE rangeid ='YOUR_RANGE')
按时间戳排序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.