sql 语句之根据符号一条拆分成多条记录
时间: 2023-09-01 11:14:01 浏览: 158
SQL SERVER 根据关键字符,将一列分成多行
4星 · 用户满意度95%
您好!针对您的问题,可以使用 SQL 中的字符串拆分函数和表连接操作来实现将一条记录拆分成多条记录,具体的实现方式如下:
假设您有一张名为 table1 的表,其中包含一列名为 column1 的字段,该字段的值为一个字符串,其中包含多个符号,您需要将该字符串根据符号进行拆分,然后将拆分后的结果作为多条记录插入到另一张名为 table2 的表中,可以使用如下的 SQL 语句实现:
```sql
-- 创建 table2 表
CREATE TABLE table2 (
id INT PRIMARY KEY,
value VARCHAR(50)
);
-- 查询并插入拆分后的数据
INSERT INTO table2 (id, value)
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)), s.value
FROM table1 t
CROSS APPLY (
SELECT value FROM STRING_SPLIT(t.column1, ',')
) s
```
在上面的 SQL 语句中,我们首先创建了 table2 表,然后使用 CROSS APPLY 和 STRING_SPLIT 函数将 table1 表中的 column1 字段拆分成多条记录,最后将拆分后的结果作为多条记录插入到 table2 表中。
请注意,上述 SQL 语句中使用了 ROW_NUMBER() 函数来为每条记录生成一个唯一的 ID 值,以便插入到 table2 表中。如果您的表中已经有一个自增的 ID 字段,则可以直接使用该字段来代替 ROW_NUMBER() 函数生成的 ID 值。
阅读全文