SQL note

Distinct

Limit

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。

LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。

如果只给定一个参数,它表示返回最大的记录行数目。

如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。

为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1。

初始记录行的偏移量是 0(而不是 1)。

查找 

列名 [NOT ] LIKE

匹配串中可包含如下四种通配符:

_:匹配任意一个字符;

%:匹配0个或多个字符;通配符

[ ]:匹配[ ]中的任意一个字符(若要比较的字符是连续的,则可以用连字符“-”表 达 );

 

WHERE university NOT IN ('复旦大学')   brackets

GROUP BY SELECT语句中非聚合的列

HAVING子句用来对分组后的结果数据再进行筛选。

  • 分别查看&结果不去重:所以直接使用两个条件的or是不行的,直接用union会去重,要用union all,分别去查满足条件1的和满足条件2的,然后合在一起不去重

SELECT 班号 ,班名,

CASE

WHEN 系号=1 THEN '软件工程系'

WHEN 系号=2 THEN '计算机系'

WHEN 系号=3 THEN '物联网系'

END

AS 系号,班主任号

FROM 班级表

IF( expr1 , expr2 , expr3 )

  • SUM() OVER() 用于计算累积和(running total),它根据指定的排序顺序累计计算一个数值列的和。

SELECT

    grade,

    SUM(number) OVER (ORDER BY grade ASC) AS cumulative_sum

FROM

    class_grade;

  • DENSE_RANK() 用于为数据行分配排名(rank),即使存在重复值,也会为每一个唯一值分配一个唯一的排名。

select emp_no,salary

from  

    (select emp_no, salary, dense_rank() over(order by salary DESC) t

    from salaries

    ) as ranked_salaries

where t = 2  

Derive 的表一定要有名字

过滤要最后加where

拼接字符串

select concat(last_name, " ", first_name) from employees

date_format(date,'%Y-%m') as mon

列别名(如 mon)不能直接在 PARTITION BY 子句中使用

select first_name

from employees

order by right(first_name,2)

select first_name

from employees 

order by substr(first_name,-2)

知识点总结:group_concat()函数将group by产生的同一个分组中的值连接起来,返回一个字符串结果。

语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

通过使用distinct可以排除重复值;如果希望对结果中的值进行排序,可以使用order by子句;separator是一个字符串值,缺省为一个逗号。

select dept_no, group_concat(emp_no) as employees

from dept_emp

group by dept_no

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值