1. 程式人生 > 其它 >CASE WHEN THEN ELSE

CASE WHEN THEN ELSE

技術標籤:SQLpostgresqlmysqlsql

case when then else語句使用

已知員工表emp表結構及資料如下
在這裡插入圖片描述
查詢員工姓名和姓名中是否含有字母A的資訊

  • 如果字元A在姓名的首位,則顯示’字元A在首位’
  • 如果字元A在姓名的末位,則顯示’字元A在末位’
  • 如果字元A在姓名中不存在,則顯示’沒有字元A’
  • 其他情況顯示’字元A在中間’
mysql
SELECT ename, 
case LOCATE('A',ename)
	when 1 THEN '字母A在首位' 
	when CHAR_LENGTH(ename) THEN '字母A在末位' 
	when 0 THEN
'沒有字母A' else '字母A在中間' END '名稱類別' FROM emp
查詢結果

在這裡插入圖片描述

Postgresql
SELECT ename, 
case position('A' in ename) 
	when 1 THEN '字母A在首位' 
	when length(ename) THEN '字母A在末位' 
	when 0 THEN '沒有字母A' 
	else '字母A在中間' 
END 名稱類別
FROM emp
查詢結果

在這裡插入圖片描述

總結:CASE WHEN語法比較簡單,僅不同資料庫函式使用存在細小差別,函式詳細用法請參考菜鳥教程
  1. mysql常用內建函式
  2. Postgresql常用內建函式