關於乙個sql的寫法

2021-08-29 19:06:35 字數 1142 閱讀 4956

需求是這樣的:

有個學生表

create table student

(id int primary key,

name varchar2(200)

);有個成績表

create table score

( id int , --對應與student 的 id(僅為測試,表結構也沒好好設計)

math int,

eng int,

time varchar(200)

);insert into student values(1,'lipf');

insert into student values(2,'lixw');

insert into student values(3,'liyf');

insert into score values(1,47,534,'2000');

insert into score values(1,35,43,'2001');

insert into score values(1,56,5,'2002');

insert into score values(1,47,674,'2004');

insert into score values(2,47,43,'2000');

insert into score values(2,35,21,'2001');

insert into score values(2,56,5,'2002');

insert into score values(2,47,32,'2004');

如果某個學生的數學成績大於英語成績(不管在那一年),則學生的記錄在頁面上要變紅。

select distinct id, name,min(flag)over(partition by name) xx  from 

(select a.id,a.name, b.flag from student a

inner join (select distinct id, sign(math-eng) flag from score ) b

on a.id=b.id

)

這樣子就會在記錄後邊加上一列,表示是否變紅。

乙個SQL的幾種寫法

某天在某技術群看見有人發了這樣乙個圖求助,一看就覺得這題考查的是利用sql行轉列 我腦海第一時間就想到用oracle的decode函式來寫,但又想到題目沒有具體說是哪一種資料庫 如果用decode的話,在mysql下是完全不一樣的用法 也是因為這次我才知道mysql也有decode方法,但跟orac...

乙個關於模糊查詢的寫法

今天在論壇上看到這樣一帖 share欄位是varchar型別的,裡面存放的資料是 1,2,24 格式的 現在我要找出該字段中所有包含1,2,3,4四個數字中任一數值的記錄。我最初的寫法 db.dbcmd.commandtext select from userinfo where share lik...

乙個 關於 case when的SQL

例 從stud grade表中查詢所有同學考試成績情況,凡成績為空者輸出 未考 小於60分輸出 不及格 60分至70分輸出 及格 70分至90分輸出 良好 大於或等於90分時輸出 優秀 select stud id,name,score case when grade is null then 未考...