sql经典语句

1.表形式如下:
Year       Salary
2000        1000
2001        2000
2002        3000
2003        4000
想得到如下形式的查询结果
Year       Salary
2000       1000
2001       3000
2002       6000
2003       10000
sql语句怎么写?

解答:select year, (select sum(salary) from ta where year <= a.year) as salary  from ta a

2.表结构: 
year          month        amount 
1991      1         1.1       
1991      2         1.2       
1991      3         1.3       
1992      1         2.1       
1992      2         2.2       
1992      3         2.3     
显示结果: 
year          m1               m2             m3   
1991            1.1               1.2             1.3       
1992            2.1               2.2             2.3       
sql的写法: 
select year, 
(select amount from test as m where month='1' and test.year=m.year) as m1, 
(select amount from test as m where month='2' and test.year=m.year) as m2, 
(select amount from test as m where month='3' and test.year=m.year) as m3 
from test group by year 
3.请教一个面试中遇到的SQL语句的查询问题 
表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。 
------------------------------------------ 
select (case when a>b then a else b end ), 
(case when b>c then b esle c end) 
from table_name 
4.面试题:一个日期判断的sql语句? 
请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间) 
------------------------------------------ 
select * from tb where datediff(dd,SendTime,getdate())=0 
5.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):? 
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。? 
显示格式:? 
语文 数学 英语? 
及格 优秀 不及格? 
------------------------------------------ 
select 
(case when 语文>=80 then '优秀' 
when 语文>=60 then '及格' 
else '不及格') as 语文, 
(case when 数学>=80 then '优秀' 
when 数学>=60 then '及格' 
else '不及格') as 数学, 
(case when 英语>=80 then '优秀' 
when 英语>=60 then '及格' 
else '不及格') as 英语, 
from table

原文地址:https://www.cnblogs.com/h07061108/p/sql.html