一題四解 SQL經典面試題

2021-04-12 15:59:18 字數 920 閱讀 9721

表結構以及資料如下:

create table 表

(id int, 日期 varchar(11), 單據 char(3))

insert into 表 (id , 日期 , 單據 ) values ( 1 , '2004-08-02' , '001' );

insert into 表 (id , 日期 , 單據 ) values ( 2 , '2004-09-02' , '001' );

insert into 表 (id , 日期 , 單據 ) values ( 3 , '2004-10-02' , '002' );

insert into 表 (id , 日期 , 單據 ) values ( 4 , '2004-09-02' , '002' );

要求:設計乙個查詢,返回結果如下:

id 日期        單據

---------- ----------- ---

1 2004-08-02  001

4 2004-09-02  002

即對於每個單據號,返回日期最小的行。

--用join的連線

select a.* from 表 a,

(select min(日期) 日期,單據 from 表 group by 單據) b

where a.單據=b.單據 and a.日期=b.日期

--不用join的連線

select a.* from 表 a join

(select min(日期) 日期,單據 from 表 group by 單據) b

on a.單據=b.單據 and a.日期=b.日期

--用謂詞exists

select * from 表 a

where not exists(select 1 from 表 where 單據=a.單據 and 日期

一題多解 面試題

最近在其他論壇上看到幾個的面試題,這些天,qq群內的人都在討論怎麼解答才最簡單,下面列出題目 檔案a 檔案b a b c a b c b c a b c a c b a c a b a a a 1 1 1 b b b 2 2 2 c c c 3 3 3 要求合併2個檔案如下 a b c a b c ...

一題多解 面試題

最近在其他論壇上看到幾個的面試題,這些天,qq群內的人都在討論怎麼解答才最簡單,下面列出題目 檔案a 檔案b a b c a b c b c a b c a c b a c a b a a a 1 1 1 b b b 2 2 2 c c c 3 3 3 要求合併2個檔案如下 a b c a b c ...

linux C經典面試題 四

例子 code examples 12 下面的 輸出是什麼,為什麼?void foo void 這個問題測試你是否懂得c語言中的整數自動轉換原則,我發現有些開發者懂得極少這些東西。不管如何,這無符號整型問題的答案是輸出是 6 原因是當表示式中存在有符號型別和無符號型別時所有的運算元都自動轉換為無符號...