SQL高级运用「建议收藏」

SQL高级运用

大家好,又见面了,我是全栈君。

这些知识常出现在面试题,但是实用价值很高。。其实也就是SQL的高级篇罢了,多用在统计方面,将行数据合并成列数据。希望读者能举一反三,灵活运用。

读取数据库中的重复记录 (group by & having)

一个表中的Id有多条重复记录,所有重复的id读取出来。

select id, COUNT(*) as count from tb GROUP BY id HAVING count>1

字符串替换操作

将manhua_name字段里所有的“漫画街”替换为“wangking717”

UPDATE table1 SET manhua_name = REPLACE(manhua_name,"漫画街","wangking717");

指定字符串排序

users表

username sex
wk 0
lj 1
kk 0

请将查询出来的数据按照”lj”,”wk”,”kk”排序显示

SELECT * FROM user ORDER BY FIND_IN_SET(username,'lj,wk,kk')

一道SQL语句面试题,关于group by

表内容:
2005-05-09 胜
2005-05-09 胜
2005-05-09 负
2005-05-09 负
2005-05-10 胜
2005-05-10 负
2005-05-10 负

如果要生成下列结果, 该如何写sql语句?

胜 负
2005-05-09 2 2
2005-05-10 1 2

select time, sum(case when shengfu='胜' then 1 else 0 end) as '胜',sum(case when shengfu='负' then 1 else 0 end) as '负' from my_table group by time

请教一个面试中遇到的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 my_table

有一张表,里面有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 my_table

请用一个sql语句得出结果

从table1,table2中取出如Result所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。
如使用存储过程也可以。


table1
月份mon 部门dep 业绩yj
一月份 01 10
一月份 02 10
一月份 03 5
二月份 02 8
二月份 04 9
三月份 03 8


table2
部门dep 部门名称dname
01 国内业务一部
02 国内业务二部
03 国内业务三部
04 国际业务部


Result
部门名称dname 一月份 二月份 三月份
国内业务一部 10 null null
国内业务二部 10 8 null
国内业务二部 null 5 8
国际业务部 null null 9


select a.dep,
sum(case when a.mon=1 then a.yj else 0 end) as '一月份',
sum(case when a.mon=2 then a.yj else 0 end) as '二月份',
sum(case when a.mon=3 then a.yj else 0 end) as '三月份'
from table2 b left join table1 a on a.dep=b.dep

SQL高级运用「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111893.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月13日 下午1:00
下一篇 2022年2月13日 下午1:00


相关推荐

  • 数据安全守护者:访答本地知识库

    数据安全守护者:访答本地知识库

    2026年3月14日
    1
  • android如何获取证书签名?

    android如何获取证书签名?cygwin环境下在cygwin环境下运行如下命令,输出结果即为signaturekeytool-exportcert-alias[alias]-keypass[aliaspassword]-keystore[keystorefilepath]-storepass[keystorepassword]|md5sum 例如:当前路径下包含用于对app签名的t

    2022年5月31日
    113
  • vc++可以编辑c语言吗?_vc6.0使用教程详解

    vc++可以编辑c语言吗?_vc6.0使用教程详解如何编写自己的VCL控件    用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    VCL控件的开源,给我们带来了享之不尽的优点。不像曾经的ole控件以及ActiveX,你全然能够重写Delphhi标准控件,并且网上这方面的资源非常多。    关于怎样编写VCL控…

    2026年3月9日
    6
  • JFinal开发web项目出现故障小记

    JFinal开发web项目出现故障小记

    2022年1月28日
    48
  • 如何在Java中将String转换为int

    如何在Java中将String转换为int在本教程中 我们将看到将 Java 中的 String 转换为 int 或 Integer 的各种方法 您可以使用以下任何一种方式 使用 Integer parseInt string 使用 Integer valueof string 使用 ApacheCommon toInt string 使用 ApacheCommon

    2025年8月2日
    8
  • 注会综合记忆锦囊:手绘PEST模型,记忆可以这样玩「建议收藏」

    注会综合记忆锦囊:手绘PEST模型,记忆可以这样玩「建议收藏」【】综合的记忆量非常庞大,且看小萌有妙招,通过“关键词”和“手绘图”带你一起巧记忆。一、PEST宏观环境分析:4项1.政治因素:4项(1)执政党所持的态度和推行的基本政策(2)企业所在国家和地区的政局稳定状况(3)政府行为对企业的影响(4)各政治利益集团对企业活动产生的影响2.法律环境因素:4项(1)国家司法机关和执法机关(2)国际法所规定的国际法律环境和目标国

    2022年5月23日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号