如何防止在選擇查詢中選擇重複的行?Oracle中的重複行
我有一個具有以下字段的表:
- 名
- 型
- USER1
- user2的
- 用戶3
- 日期
我的查詢需要我Ť o僅在用戶在前端輸入的時間爲特定用戶選擇數據。假設用戶輸入1,則選擇查詢應僅爲user1檢索數據。
我目前在做這樣的:
select name,type,date from table1 order by user1;
但我的結果讓多餘的行?
我做錯了什麼?如何避免這些重複的行?
請幫助...
如何防止在選擇查詢中選擇重複的行?Oracle中的重複行
我有一個具有以下字段的表:
我的查詢需要我Ť o僅在用戶在前端輸入的時間爲特定用戶選擇數據。假設用戶輸入1,則選擇查詢應僅爲user1檢索數據。
我目前在做這樣的:
select name,type,date from table1 order by user1;
但我的結果讓多餘的行?
我做錯了什麼?如何避免這些重複的行?
請幫助...
您有兩個選擇SELECT DISTINCT或使用GROUP BY子句。您還有一個日期列,在Oracle中也意味着有時間安全起見,應該截斷日期列。即使你知道時間不是插入部分截斷無論如何。很好的做法是,當你看到日期時,你認爲它有時間。
您將遇到的下一個問題是您不能在不屬於SELECT部分的列上有ORDER BY。
我的建議是GROUP BY。
SELECT user1, name, type, TRUNC(date) date
FROM Table1
GROUP BY user1, name, type, TRUNC(date)
ORDER BY user1
嘗試SELECT DISTINCT
我不知道我是否完全搞定你的問題。但我會盡量嘗試:
如果你想根據用戶輸入的嘗試對某些用戶過濾:
選擇名稱,類型,從表1 其中user = [無論你的用戶「日期」 材料] 順序被
如果你想選擇一個不同的列(用戶1,用戶2,用戶3)根據用戶輸入的嘗試:
選擇名稱,類型,「日期」,解碼(YOUR _USER_INPUT,1,用戶1,2,用戶2,3,用戶3) 從表1 順序被
如果只是想要不同的結果,儘量選擇不同
選擇不同的名稱,類型, 「日期」,用戶1,用戶2,用戶3 從表1
請做提供了一個例子,所以我們可以相應幫助。祝你好運,gudluck。