我的4gl程序需要:
比方說,我有一個包含電話號碼和姓名的表格。可以有兩個人使用相同的電話號碼,或者兩個人使用一個電話號碼。
我只需要在表格中選擇每個電話號碼的1。
我所做的:在4GL中選擇2個不同的列
SELECT DISTINCT phone_number, last_name FROM table
結果將顯示2條記錄。即使電話號碼是相同的,因爲名稱不同,它不再是唯一的。我怎樣才能得到一個獨特的電話號碼,無論其姓氏? (不過,我想最後的名字,以及我不在乎是哪一個。)
我的4gl程序需要:
比方說,我有一個包含電話號碼和姓名的表格。可以有兩個人使用相同的電話號碼,或者兩個人使用一個電話號碼。
我只需要在表格中選擇每個電話號碼的1。
我所做的:在4GL中選擇2個不同的列
SELECT DISTINCT phone_number, last_name FROM table
結果將顯示2條記錄。即使電話號碼是相同的,因爲名稱不同,它不再是唯一的。我怎樣才能得到一個獨特的電話號碼,無論其姓氏? (不過,我想最後的名字,以及我不在乎是哪一個。)
DISTINCT
,因爲你我們注意到,會返回完整不同的行。
這聽起來像你正在尋找像group by
。本質上,GROUP BY phone_number
將爲每個電話號碼返回一行。因爲你也想得到last_name
,你需要指示數據庫如何返回。你說你不關心它,所以你可以簡單的寫:
SELECT phone_number, MAX(last_name) as last_name
FROM table
GROUP BY phone_number
的Informix還支持FIRST_VALUE
聚合函數,雖然我只用在OLAP的情況,所以我不記得它是否會在這方面努力上下文。
如果你不關心哪個姓氏,然後嘗試了這一點:
SELECT phone_number,
MAX(last_name) AS last_name
FROM table
GROUP BY phone_number
不會downvote,但這個問題被標記爲informix所以我懷疑TSQL將工作。 –
哈哈我以爲我把t-sql的搜索。我的錯。 – Stephan
它發生了,我也做到了。 MSSQL是我選擇的數據庫 –