SQL SUBSTRING:從字串中提取子字串

摘要:在本教學中,您將學習如何使用 SQL SUBSTRING 函數從字串中提取子字串。

SQL SUBSTRING 函數簡介

SUBSTRING 函數會提取從指定位置開始,具有指定長度的子字串。

以下說明 SUBSTRING 函數的語法。

SUBSTRING(source_string, position, length);Code language: SQL (Structured Query Language) (sql)

SUBSTRING 函數接受三個引數

  • source_string 是您要从中提取子字串的字串。
  • position 是子字串開始的起始位置。字串的第一個位置是一 (1)。
  • length 是子字串的長度。length 引數是選填的。

大多數關聯式資料庫系統都以相同的功能實作 SUBSTRING 函數。

SQL SUBSTRING 函數範例

以下範例會傳回從位置 1 開始,長度為 3 的子字串。

SELECT SUBSTRING('SQLTutorial.org',1,3);Code language: SQL (Structured Query Language) (sql)
substring
-----------
 SQL
(1 row)Code language: SQL (Structured Query Language) (sql)

以下語句會傳回從位置 4 開始,長度為 8 的子字串。

SELECT SUBSTRING('SQLTutorial.org',4,8);Code language: SQL (Structured Query Language) (sql)
 substring
-----------
 Tutorial
(1 row)
Code language: SQL (Structured Query Language) (sql)

以下語句使用 POSITION 函數來傳回字串中點字元 (.) 的位置。

POSITION 函數的結果會傳遞至 SUBSTRING 函數,以尋找網域的副檔名

SELECT 
    SUBSTRING('SQLTutorial.org',
        POSITION('.' IN 'SQLTutorial.org'));Code language: SQL (Structured Query Language) (sql)
substring
-----------
 .org
(1 row)Code language: SQL (Structured Query Language) (sql)

請參閱範例資料庫中的以下 employees 表格。

employees_table

以下查詢使用 SUBSTRING 函數來提取員工名字的第一個字元(縮寫),並依縮寫將員工分組

SELECT 
    SUBSTRING(first_name, 1, 1) initial, 
    COUNT(employee_id)
FROM
    employees
GROUP BY initial;Code language: SQL (Structured Query Language) (sql)
SQL SUBSTRING example

在本教學中,您已學習如何使用 SQL SUBSTRING 函數從字串中提取子字串。

本教學對您有幫助嗎?