1樓:匿名使用者
select tt.* from
(select t.*,row_number() over(partition by t.c1 order by t.c2 desc ) rn from aaa t)tt
where tt.rn=1;
分析函式 的作用是按c1進行分組,並且對每個組進行排序(select t.*,row_number() over(partition by t.c1 order by t.
c2 desc ) rn from aaa t)的查詢結果是
c1 c2 c3 rn
a ab cd 1
a ef gh 2
b as qw 1
c e4 r5 1
d af gf 1d e2 3e 2
2樓:匿名使用者
本機沒有 oracle , 寫個 sql server 版本的, 你參考著看看
沒有用太多 sql server 的特性。
1> create table #temp (
2> c1 char(1),
3> c2 char(2),
4> c3 char(2)
5> );
6> go
1>2> insert into #temp
3> select 'a', 'ab', 'cd' union all
4> select 'a', 'ef', 'gh' union all
5> select 'b', 'as', 'qw' union all
6> select 'c', 'e4', 'r5' union all
7> select 'd', 'e2', '3e' union all
8> select 'd', 'af', 'gf';
9> go
(6 行受影響)
1>2> select
3> c1, c2, c3
4> from
5> #temp main
6> where
7> not exists (
8> select *
9> from #temp sub
10> where
11> main.c1 = sub.c1 and
12> main.c2 < sub.c2
13> )
14> go
c1 c2 c3
-- -- --
a ef gh
b as qw
c e4 r5
d e2 3e
(4 行受影響)
3樓:匿名使用者
select
a.c1,
c2 = isnull((select top 1 b.c2 from t1 b where b.c1 = a.c1 order by b.c2,b.c3),''),
c3 = isnull((select top 1 b.c3 from t1 b where b.c1 = a.c1 order by b.c2,b.c3),'')
from t1 a
group by a.c1
sql 查詢問題。C sql查詢問題
where語句多個條件拼接可以這麼做,先拼一個萬能的條件 1 1 或者 0 0 然後其他的條件如果有效就依次新增進去。這個sql語句裡是把between.and拆分成2個邊界值進行比較。sql select from it gdchang where 1 1 if if 其他類似,先判斷有沒有輸入,...
SQL查詢問題
select 姓名,專業,課程名,成績 from select 課程號,max 成績 from grade group by 課程號 as a inner join student as s on s.學號 a.學號 inner join course as c on c.課程號 a.課程號 sel...
模糊查詢Sql語句問題,SQL模糊查詢語句怎麼寫啊
理工愛好者 模糊之後估計效率不太好 如果知道z是開頭字母 select name where pyname like z s 如果zs都是中間字母 select name where pyname like z s 祝好運,望採納。 select from 表面 like zs like是不分大小寫...