繁体   English   中英

Oracle SQL-查询具有相同列的2个值的表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM