SQL SUBSTRING 函式

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

SQL SUBSTRING 函式簡介 #

SUBSTRING 函式用於提取從指定位置開始且具有給定長度的子字串。

以下是 SUBSTRING 函式的語法

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

SUBSTRING 函式接受三個引數

  • string 是您要從中提取子字串的源字串。
  • position 是子字串開始的起始位置。字串的第一個位置是 1。
  • length 是子字串的長度。

SUBSTRING() 函式返回一個子字串。如果任何引數(stringposition 和 length)為 NULL,它將返回 NULL

基本的 SQL SUBSTRING 函式示例 #

以下示例使用 substring 函式返回一個從位置 1 開始,長度為 3 的子字串

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

試一試

輸出

 result
--------
 SQLCode language: SQL (Structured Query Language) (sql)

以下語句使用 SUBSTRING() 函式返回一個從位置 4 開始,長度為 8 的子字串

SELECT
  SUBSTRING('SQLTutorial.org', 4, 8) result;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 substring
-----------
 Tutorial
(1 row)
Code language: SQL (Structured Query Language) (sql)

以下語句使用 SUBSTRING() 函式和 POSITION 函式來返回域名 sqlutorial.org 的副檔名

SELECT
  SUBSTRING(
    'SQLTutorial.org',
    POSITION('.' IN 'SQLTutorial.org'), 
    4
  ) extension;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 extension
-----------
 .orgCode language: SQL (Structured Query Language) (sql)

查詢工作原理

  • 首先,使用 POSITION() 函式找到點字元(.)的位置。
  • 其次,透過從點字元(.)的位置提取到域名末尾的子字串來檢索副檔名。

對錶資料使用 SQL SUBSTRING 函式 #

我們將使用示例資料庫中的 employees 表。

employees_table

以下查詢使用 SUBSTRING 函式提取每位員工名字的第一個字元(首字母)

SELECT
  first_name,
  substring(first_name, 1, 1) initial
FROM
  employees
ORDER BY
  first_name;

試一試

輸出

first_name  | initial
-------------+---------
 Adam        | A
 Alexander   | A
 Alexander   | A
 Britney     | B
 Bruce       | B
 Charles     | C

將 SUBSTRING 函式與聚合函式結合使用 #

以下示例使用 SUBSTRING 函式和 COUNT 函式按首字母統計員工數量

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

試一試

輸出

 initial | count
---------+-------
 A       |     3
 B       |     2
 C       |     1
 D       |     4
 G       |     1
 H       |     1
 I       |     2
...

摘要 #

  • 使用 SQL SUBSTRING() 函式從字串中提取子字串。

資料庫 #

本教程是否有幫助?
© .