SQL比較同列資料的方法

2021-10-10 08:38:25 字數 752 閱讀 3235

查詢選修8105課程,且成績高於其選修的8104的課程成績的學生的學號和成績(8105課程成績),按成績從高到低排序。

要求查詢的物件一定是同時選修了81048105兩門課的學生

同時課程8105的成績大於8104的成績

成績最終按降序排列

select sno,grade from sc

where cno=

'8105'

--最終需要獲得的是『8105』的成績

and grade >

--此處的grade是8105的成績

(select grade from sc s2 --給sc表賦予另乙個名字s2

where sc.sno=s2.sno and s2.cno=

'8104'

)--通過s2.cno指定這裡的子查詢是獲取與『8105』同乙個學生的『8104』課程的成績

order

by grade desc

;--最後按成績降序排列

當需要比較同一列資料的不同數值時,可以通過給資料表「起別名」的方式再次指向同一類資料,並對其進行比較。

sql 拼接同列的值

sql中有時需要將列的值轉成行的形式,比如下面的資料,具有相同path的zumenid有哪一些,該怎麼做呢?常見的做法可以參見這篇文章 這裡介紹另外一種拼接列的值的方法,利用xml實現。參見這篇文章 不過這裡要稍微複雜一點,需要用到子查詢。sql如下 select b.path,stuff repl...

SQL同表資料複製

在專案中可能需要用到同表資料複製,如 兩筆記錄除了日期和rowid 自動編號 其他資料均是一模一樣,一般的辦法就是讀取出來然後再插進去,即使寫到儲存過程裡面也一樣需要執行兩條sql語句,效率也比較低的。一條語句進行複製資料 insert into new table name column1,col...

SQL 列轉行 行轉列 的方法

建立表 插入資料 insert into col to row user name,course,score values 張三 語文 58 insert into col to row user name,course,score values 張三 數學 34 insert into col t...