Sql 的split函数
时间: 2023-06-21 07:13:35 浏览: 94
Sql Server数据库中自定义拆分字符串函数Split()
在 SQL 中没有内置的 Split 函数,但是可以使用其他函数来实现类似的功能。一种常见的方法是使用 SUBSTRING_INDEX 函数。
例如,假设有一个包含逗号分隔值的列 `csv_column`:
```
csv_column
----------
1,2,3
4,5
6
```
我们可以使用以下查询将其拆分成多行:
```
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(csv_column, ',', n.digit+1), ',', -1) value
FROM
(SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
JOIN (SELECT @row:=@row+1 row, csv_column FROM my_table, (SELECT @row:=0) r) t
ON LENGTH(csv_column)
-LENGTH(REPLACE(csv_column, ',', ''))>=n.digit
WHERE t.row<=LENGTH(csv_column)-LENGTH(REPLACE(csv_column, ',', ''))+1;
```
这将生成以下结果:
```
value
-----
1
2
3
4
5
6
```
这个查询的主要思想是使用 SUBSTRING_INDEX 函数来提取每个逗号分隔的值,然后使用一个数字序列来生成多个行,每行包含一个值。最后,使用 WHERE 子句来限制行的数量,以避免产生额外的行。
阅读全文