📜  sql 按空格分割字符串 - SQL (1)

📅  最后修改于: 2023-12-03 15:20:17.021000             🧑  作者: Mango

SQL按空格分割字符串

在SQL中,如果你需要按照空格来分割字符串,可以使用SUBSTRING_INDEX函数。

SUBSTRING_INDEX函数

SUBSTRING_INDEX函数用于获取字符串在指定分隔符前或者后的子字符串。

函数的语法如下:

SUBSTRING_INDEX(str,delim,count)
  • str: 待分割的字符串
  • delim: 分隔符,用于指定分割字符串的位置
  • count: 指定返回结果的个数。如果是正数,则返回分隔符前count个子串;如果是负数,则返回分隔符后 |count| 个子串。
示例
示例1

假设我们有一个字符串 hello world how are you,现在需要将它按照空格分割,可以使用下面的SQL语句:

SELECT
  SUBSTRING_INDEX('hello world how are you', ' ', 1) as part1,
  SUBSTRING_INDEX(SUBSTRING_INDEX('hello world how are you', ' ', 2), ' ' ,-1) as part2,
  SUBSTRING_INDEX(SUBSTRING_INDEX('hello world how are you', ' ', 3), ' ' ,-1) as part3,
  SUBSTRING_INDEX(SUBSTRING_INDEX('hello world how are you', ' ', 4), ' ' ,-1) as part4,
  SUBSTRING_INDEX(SUBSTRING_INDEX('hello world how are you', ' ', 5), ' ' ,-1) as part5

执行结果如下:

| part1 | part2 | part3 | part4 | part5 | | ----- | ----- | ----- | ----- | ----- | | hello | world | how | are | you |

示例2

假设我们有一个表 students,其中有一个字段 name,字段值类似 John Doe,我们需要将名字拆分成两个字段:first_namelast_name

可以使用下面的SQL语句:

SELECT
  SUBSTRING_INDEX(name, ' ', 1) as first_name,
  SUBSTRING_INDEX(name, ' ' ,-1) as last_name
FROM students

执行结果如下:

| first_name | last_name | | ---------- | --------- | | John | Doe |

以上就是按照空格分割字符串的SQL方式,可以根据实际业务需求进行灵活运用。