-- The IFNULL SELECT
order_id,
IFNULL(shipper_id,'Not Assigned')AS shipper
FROM orders;-- COALESCE FunctionsSELECT
order_id,-- coalesce(val, ...) 返回第一个非null的值COALESCE(shipper_id, comments,'Not Assigned')AS shipper
FROM orders;-- IFNULL FunctionsSELECT
CONCAT(first_name,' ', last_name)AS customer,
IFNULL(phone,'Unknown')AS phone
FROM customers;-- The IF Function-- gist: 对订单分类,把今年的记为Active,其他记为ArchivedSELECT*,IF(YEAR(order_date)=YEAR(NOW()),'Active','Archived')AS category
FROM orders;-- The IF Function-- gist: 订单出现一次和多次进行打标签SELECT
product_id,
name,COUNT(*)AS orders,IF(COUNT(*)=1,'Once','Many times')AS frequency
FROM products
JOIN order_items USING(product_id)GROUPBY product_id, name;-- 注意最好把出现的列都作为group by 语句-- case when then end 多条件判断SELECT
order_id,CASEWHENYEAR(order_date)=YEAR(NOW())THEN'Active'WHENYEAR(order_date)=YEAR(NOW())-1THEN'Last Year'WHENYEAR(order_date)<YEAR(NOW())-1THEN'Achived'ELSE'Future'ENDAS'category'FROM orders;-- case when then end 多条件判断SELECT
CONCAT(first_name,' ', last_name)AS customer,
points,CASEWHEN points <2000THEN'Bronze'WHEN points BETWEEN2000AND3000THEN'Silver'WHEN points >3000THEN'Gold'-- ELSE nullENDAS category
FROM customers
ORDERBY points DESC;