簡體   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