SQL基本语法和实战经验
sql吧
全部回复
仅看楼主
level 2
抛砖引玉,有什么疏漏的地方,指点指点
2020年01月15日 02点01分 1
level 2
SQL 一些常用的语法句子
select * from tablename limit 10; 查看表内数据,一般为了便于查看,会限制数据数目,比如10;
desc tablename; 查看表字段名,字段类型,也比较常用;
select a.*,b.* from test_1 a left out join test_2 b on a.id=b.id 左连接;这个以test_1为主表,然后在test_2中,能够匹配到的id,会把相关字段,增加到test_1上,没匹配的字段,数据会以Null填充;无论什么join,如果有重复id,会实现多连接;
2020年01月15日 02点01分 2
level 2
需求:将每个数据除以一列的总和,子查询方法,
select id,num/(select sum(num) from test_one) b) from test_one;
需求;从重复数据中找出显示一行数据:
select ID,num from test_one group by id;
case when 多条件选择:有时候判断要根据两个字段来写,所以又是case when了
select id,case when score>90 then case when num>5 then 'good' end as label ;分数>90,且有5门以上学科,评价为good;
2020年01月15日 02点01分 3
level 2
跑一批业务数据,发现了一个小问题,查出来的区间都是4-8,然后业务很怀疑,我重新审视了一下代码,发现了这个case when 的问题
case when a<4 then 1 when 4<= a <8 then 2 这样能通过,但是结果是错的,基本出现的结果都是4-8,后面的判断都不执行了,SQL认为a>4的取值都是了,其实后面还有若干个判断,但是都不执行了....很诡异
更正方法:case when a<4 then 1 when a>=4 and a<8 then 2 这样是可以的
找出一组数据中最大,第二大,第三大数据:使用窗口函数,例如我们现在有id,num 两个字段
select id,num from(select id,num,row_number over(partition by id order by num desc) r from table)t where r=2,通过利用r的取值来取排序数据,
2020年01月15日 02点01分 4
level 2
文字分享就这么多,有些教程,需要的拿走
2020年01月15日 02点01分 5
发送E-mail即可
2020年01月15日 02点01分
level 1
2020年01月15日 08点01分 6
OK
2020年01月16日 01点01分
收到
2020年01月16日 07点01分
[呵呵]
2020年01月17日 01点01分
level 2
2020年01月16日 07点01分 7
已发
2020年01月18日 02点01分
level 5
大佬 问个问题,我没什么思路
2020年01月17日 06点01分 8
level 5
表A有5个字段01,02,03,04,05。
有3份重复的数据,每份重复的数据有100条。(1-100和101-200数据完全一样201-300也是)。
现在101-300这200条数据的04字段缺失,如何恢复(没有备份)。
2020年01月17日 06点01分 9
level 5
我需要把第101-200条数据变得成跟1-100完全一样(该表没有唯一键,我也不知道哪个是主键)。201-300同理。就是不知道怎么弄。
2020年01月17日 06点01分 10
可以私信,添加一下好友
2020年01月17日 07点01分
1