赞
踩
写出一个SQL 查询语句,计算每个雇员的奖金。如果一个雇员的id是奇数并且他的名字不是以’M’开头,那么他的奖金是他工资的100%,否则奖金为0。
`if ( 条件,若条件正确则返回,若条件错误则返回`)
employee_id%2=1
--or
mod(id,2) --=1 是指id是奇数, =0 是指id是偶数
编写一个 SQL 查询来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。
update 表名
set 列名 = 修改后的值
case 列名
when 1 then 2 #将1换为2
when 2 then 3
else 3
end
编写一个 SQL 删除语句来 删除 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。
将该表分为两份判断
DELETE p1.*
FROM Person as p1, Person as p2
WHERE p1.email = p2.email AND p1.id>p2.id
编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的。
CONCAT(' A','B','C')
LEFT('123456789',3)
返回左边3项
SUBSTRING('123456789',3)
从第3位开始返回
编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列。
连接group by的结果集时,可以指定自定义的分隔符,不指定的情况下,默认是 ‘,’
GROUP_CONCAT(DISTINCT product
ORDER BY product ASC
SEPARATOR ',')
解法
SELECT sell_date,
COUNT(DISTINCT product) as num_sold,
GROUP_CONCAT(DISTINCT product
ORDER BY product ASC
SEPARATOR ',') as products
FROM Activities
GROUP BY sell_date #需要将同一销售日期的并在一起
ORDER BY sell_date
写一条 SQL 语句,查询患有 I 类糖尿病的患者 ID (patient_id)、患者姓名(patient_name)以及其患有的所有疾病代码(conditions)。I 类糖尿病的代码总是包含前缀 DIAB1 。
SELECT sell_date,
COUNT(DISTINCT product) as num_sold,
GROUP_CONCAT(DISTINCT product
ORDER BY product ASC
SEPARATOR ',') as products
FROM Activities
GROUP BY sell_date #需要将同一销售日期的并在一起
ORDER BY sell_date
写出一个查询语句,找到所有 丢失信息 的雇员id。当满足下面一个条件时,就被认为是雇员的信息丢失:
雇员的 姓名 丢失了,或者
雇员的 薪水信息 丢失了,
A left join B on 关键key条件 WHERE 条件 #将B加到A中
重构 Products 表,查询每个产品在不同商店的价格,使得输出的格式变为(product_id, store, price) 。如果这一产品在商店里没有出售,则不输出这一行。
SELECT product_id, 'store1' as store, store1 as price FROM Products WHERE store1 is not NULL
UNION
SELECT product_id, 'store2' as store, store2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。