SQL刷题心得

SQL刷题心得

UPDATE语法和if判断

# 题目:
给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。
# UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
update salary set sex = if (sex='m','f','m');

if判断格式:
if(a,b,c)
a为布尔值,aTrue返回b,aFalse返回c

DATEDIFF() 函数 日期之差

DATEDIFF() 函数返回两个日期之间的天数。
语法

DATEDIFF(date1,date2)

date1 和 date2 参数是合法的日期或日期/时间表达式。
注释:只有值的日期部分参与计算。
例子 1
使用如下 SELECT 语句:

SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate

结果:

DiffDate
1

例子 2
使用如下 SELECT 语句:

SELECT DATEDIFF('2008-12-29','2008-12-30') AS DiffDate

结果:

DiffDate
-1

CASE === if–elif–else

CASE 是 SQL 用來做為 IF-THEN-ELSE 之類邏輯的關鍵字。 CASE 的語法如下:

SELECT CASE ("欄位名")
  WHEN "條件1" THEN "結果1"
  WHEN "條件2" THEN "結果2"

  ...
  [ELSE "結果N"]
  END
FROM "表格名";

“條件” 可以是一個數值或是公式。 ELSE 子句則並不是必須的。

MOD() 求余函数

求A,B两数的余

MOD(A,B)A

你可能感兴趣的:(面试问题)