SQL 語句中 “意想不到” 的操作
文章目錄
一、 sql 中字串擷取的函式
原文連結:
1、LEFT( createDate, 10 ) 從左邊擷取到第十個字串
注意:起始位置的下標為 1 開始
如下圖所示,有的時候我們想要的時間是年月日,而不需要時分秒。
SELECT LEFT
( createDate, 10 )
FROM
`joblevel`
結果如下:
2、RIGHT( createDate, 8 ) 從右邊擷取到第八個字串
SELECT RIGHT
( createDate, 8 )
FROM
`joblevel`
3、SUBSTRING(name,5,3) 擷取name這個欄位 從第五個字元開始 只擷取之後的3個字元
注意 : 含頭不含尾
SELECT SUBSTRING('成都融資事業部',5,3)
結果:事業部
4、SUBSTRING(name,3) 擷取name這個欄位 從第三個字元開始,之後的所有個字元
SELECT SUBSTRING('成都融資事業部',3)
結果:融資事業部
5、SUBSTRING(name, -4) 擷取name這個欄位的第 4 個字元位置(倒數)開始取,直到結束
SELECT SUBSTRING('成都融資事業部',-4)
結果:資事業部
6、SUBSTRING(name, -4,2) 擷取name這個欄位的第 4 個字元位置(倒數)開始取,只擷取之後的2個字元
SELECT SUBSTRING('成都融資事業部',-4,2)
結果:資事
注意:我們注意到在函式 substring(str,pos, len)中, pos 可以是負值,但 len 不能取負值。
7、substring_index(‘www.baidu.com’, ‘.’, 2) 擷取第二個 ‘.’ 之前的所有字元
SELECT substring_index('www.baidu.com', '.', 2)
結果:www.baidu
8、substring_index(‘www.baidu.com’, ‘.’, -2) 擷取第二個 ‘.’ (倒數)之後的所有字元
SELECT substring_index('www.baidu.com', '.', -2)
結果:baidu.com
9、SUBSTR(name, 1, CHAR_LENGTH(name)-3) 擷取name欄位,取除name欄位後三位的所有字元
SELECT SUBSTR('成都融資事業部', 1, CHAR_LENGTH('成都融資事業部')-3)
結果:成都融資
二、sql 語句中保留小數
1、ROUND() 函式
查詢前:
保留一位小數
SELECT ROUND(contractTerm,1) FROM `employee`
查詢後:
三、sql語句中的 Null 函式
1、ISNULL() 函式
ISNULL
使用指定的替換值替換 NULL。
語法
ISNULL ( check_expression , replacement_value )
引數
check_expression
將被檢查是否為 NULL的表示式。check_expression 可以是任何型別的。
replacement_value
在check_expression
為 NULL時將返回的表示式。replacement_value
必須與 check_expresssion
具有相同的型別。
返回型別
返回與 check_expression
相同的型別。
註釋
如果 check_expression
不為 NULL,那麼返回該表示式的值;否則返回 replacement_value
原文:
2. IFNULL() 函式
部落格內容:
IFNULL() 函式用於判斷第一個表示式是否為 NULL,如果為 NULL 則返回第二個引數的值,如果不為 NULL 則返回第一個引數的值。
IFNULL() 函式語法格式為:
IFNULL(expression, alt_value)
如果第一個引數的表示式 expression 為 NULL,則返回第二個引數的備用值。
引數 | 描述 |
---|---|
expression | 必須,要測試的值 |
alt_value | 必須,expression 表示式為 NULL 時返回的值 |
MySQL中的ISNULL和IFNULL有區別:
ISNULL() 只是用來判斷是否為空,不能實現替換功能;而 IFNULL() 不僅可以用來判斷是否為空,還可以實現替換功能。