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