1. 程式人生 > 資料庫 >SQL 語句中 “意想不到” 的操作

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() 不僅可以用來判斷是否為空,還可以實現替換功能。