今天在論壇上看到乙個面試題,是說有什麼辦法可以替代distinct,得到同樣的結果。答案都被大家說的差不多了,發現挺有意思的,就記錄一下:
sql> select num from t1;
num
---------- 6
6 78 9
1 11 1
1 11 1
1 115 rows selected
sql> select distinct num from t1;
num
---------- 1
6 87 9
5 rows selected
一、用unique代替distinct:
這個比較無恥,基本屬於說了跟沒說一樣,但確實是對的
sql> select unique num from t1;
num
---------- 1
6 87 9
5 rows selected
二、用group by來做:
這個應該是出題者的本意
sql> select num from t1 group by num;
num
---------- 1
6 87 9
5 rows selected
三、用union和minus:
因為union和minus預設都是先distinct然後再做聚集,所以可以這樣做:
sql> select num from t1 minus select 999 from dual;
num
---------- 1
6 78 9
5 rows selected
sql> select num from t1 union select num from t1 ;
num
---------- 1
6 78 9
5 rows selected
乙個是minus乙個沒有的項,乙個是union它本身。
關於其他的方法,要是再用over之類的就沒有什麼太大的意義了,差不多就這3種了。
替代方法 聲母替代 遺漏的矯治方法
本節課程 言語訓練的知識與技巧 之 聲母替代 遺漏的矯治方法 本期,馬老師講解了聲母替代 遺漏有哪些常見的出錯現象及具體矯治辦法,並進行詳細分析。聲母替代 遺漏的矯治方法 言語訓練的知識與技巧 主要講述了聽障兒童不同的 階段,言語訓練的內容 技巧與側重點。從 初期家長關心的聽能問題入手,講解聽能反應...
替代CASE的方法
case是乙個標量表示式,根據條件邏輯返回乙個值,既然是表示式,就不能當是一條語句來控制邏輯的流程。今天在網上看到一帖 根據上帖,建立乙個表,並填充資料 create tablet a nvarchar 10 b nvarchar 10 insert into t values 001 y inse...
替代CASE的方法
case是乙個標量表示式,根據條件邏輯返回乙個值,既然是表示式,就不能當是一條語句來控制邏輯的流程。今天在網上看到一帖 根據上帖,建立乙個表,並填充資料 create tablet a nvarchar 10 b nvarchar 10 insert into t values 001 y inse...