PostgreSQL SUBSTRING() 函数与正则表达式示例

什么是 PostgreSQL 子串?

此 PostgreSQL 子字符串函数可以帮助你……tract 并返回字符串的一部分。它不会返回整个字符串,而只返回其中的一部分。

句法

此 PostgreSQL substring 函数采用以下语法:

substring( string [from starting_position] [for length] )

参数

姓名 描述
绳子 源字符串,其数据类型为varchar、char、string等。
起始位置 这是一个可选参数。它表示 ex 的位置。trac字符串的开头部分将开始。如果省略此参数,则示例将开始。trac操作将从位置 1 开始,即字符串中的第一个字符。
长度 这是一个可选参数。它表示要省略的字符数。trac从字符串中提取 ted。如果省略此参数,函数将执行此操作。trac从起始位置到字符串末尾的 t。

例子

在这个例子中,我们想要……tract 单词的前 4 个字符 Guru99年:

SELECT substring('Guru99' for 4);

该命令将返回以下内容:

PostgreSQL 子串

我们没有指定起始位置,所以……trac子字符串从位置 1 开始。有 4 个字符。tracted 返回以上内容。

以下示例显示如何指定起始位置:

SELECT substring('Guru99' from 1 for 4);

该命令将返回以下内容:

PostgreSQL 子串

我们明确指出,前任trac子字符串的起始位置应从第 1 个字符开始,并且应包含 4 个字符。trac特德。

让我们举例trac字符串中的 t 99 Guru99年:

SELECT substring('Guru99' from 5);

该命令将返回以下内容:

PostgreSQL 子串

我们将起始位置指定为 5。由于要显示的字符数为 5,因此trac特德没有具体说明,前任traction 一直延伸到字符串的末尾。

这是另一个示例:

SELECT substring('Guru99' from 5 for 2);

该命令将返回以下内容:

PostgreSQL 子串

我们已经开始了前trac位置 5 处有 tion,并且有 2 个字符已被删除trac特德。

考虑下面给出的 Book 表:

PostgreSQL 子串

我们想大致了解每本书的名称。但是,我们可以……trac仅取表中名称列的前 15 个字符:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

该命令将返回以下内容:

PostgreSQL 子串

现在我们对每本书的名字有一个大致的了解了。

使用 SQL 正则表达式匹配子字符串

In PostgreSQL我们可以举例trac提取与指定 POSIX 正则表达式匹配的子字符串。在这种情况下,substring 函数的语法如下:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

以下是对上述参数的解释:

该字符串是源字符串,其 数据类型 是varchar,char,string等。

matching_pattern 是在字符串中用于搜索的模式。

例子

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

该命令将返回以下内容:

使用 SQL 正则表达式匹配子字符串

我们的输入字符串是“你的年龄是22岁”。在模式匹配中,我们要在字符串中查找一个数字模式。当找到该模式时,子字符串函数应该只执行指定的操作。trac两个字符。

如何使用 pgAdmin 匹配子字符串

现在让我们看看如何使用 pgAdmin 执行操作。

上述不需要数据库的查询可以直接从查询编辑器窗口执行。只需执行以下操作:

步骤1) 登录您的帐户。
登录您的 pgAdmin 帐户。

步骤2) 在 pgAdmin 上,
单击查询工具图标。

使用 pgAdmin 匹配子字符串

查询编辑器窗口将会打开。

步骤3) 類型查詢。
在编辑器窗口中输入以下查询。

SELECT substring('Guru99' for 4);

步骤4) 执行查询
单击执行图标来执行查询。

使用 pgAdmin 匹配子字符串

步骤5) 查询执行已完成。
它应该返回以下内容:

使用 pgAdmin 匹配子字符串

例如2:

SELECT substring('Guru99' from 1 for 4);

它应该返回以下内容:

使用 pgAdmin 匹配子字符串

下一个例子如下:

SELECT substring('Guru99' from 5);

它应该返回以下内容:

使用 pgAdmin 匹配子字符串

例如3:

SELECT substring('Guru99' from 5 for 2);

它应该返回以下内容:

使用 pgAdmin 匹配子字符串

现在,让我们使用 Demo 数据库的 Book 表运行示例:

步骤1) 登录您的 pgAdmin 帐户。

步骤2)

  1. 从左侧导航栏中单击数据库。
  2. 单击“演示”。

使用 pgAdmin 匹配子字符串

步骤3) 在查询编辑器中输入查询:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

步骤4) 单击执行按钮。

使用 pgAdmin 匹配子字符串

它应该返回以下内容:

PostgreSQL 子串

现在我们对每本书的名字有一个基本的了解。

使用 SQL 正则表达式匹配子字符串

要在 pgAdmin 上完成相同操作,请执行以下操作:

步骤1) 登录您的 pgAdmin 帐户。

步骤2) 单击查询工具图标。

使用 SQL 正则表达式匹配子字符串

查询编辑器窗口将会打开。

步骤3) 在编辑器窗口中输入以下查询。

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

步骤4) 单击执行图标来执行查询。

使用 SQL 正则表达式匹配子字符串

它应该返回以下内容:

使用 SQL 正则表达式匹配子字符串

结语

  • 此 PostgreSQL 子字符串函数在例如tracting 并仅返回字符串的一部分。
  • 字符串的第一个字符位于位置 1。
  • 如果要添加的字符数为空trac如果未指定字符串中的 ted,则该函数将执行trac从指定的起始位置到字符串末尾,输入 t 个字符。
  • 如果要添加的字符数为空trac如果指定了字符数,则只会显示指定数量的字符。trac特德。

下载本教程使用的数据库

总结一下这篇文章: