gpt4 book ai didi

sql - 拆分列数据并插入 - SQL Server 存储过程

转载 作者:行者123 更新时间:2023-12-01 10:31:54 26 4
gpt4 key购买 nike

我有一个表,有几十万行,数据格式是index(int),words nvarchar(1000)。单词字符串由以空格分隔的单词集合组成,例如 word1 word2 word3。我想阅读单词表并创建字典。就伪代码而言,这就是我想要的:

INSERT INTO dictionary (dictionaryword) 
SELECt splitBySpace(words) FROM word;

这很简单,可以用 Java 或 C# 编写代码,但我发现系统处理数据需要很长时间。在其他处理中,运行 SQL 来处理查询(即不使用 C# 或 Java 处理数据)的成本效益是巨大的。

我想创建一个存储过程来读取单词、拆分它们,然后创建字典。我见过各种有点复杂的拆分程序,例如 https://dba.stackexchange.com/questions/21078/t-sql-table-valued-function-to-split-a-column-on-commas但我看不出如何为读取整个数据库、拆分单词和插入单词的任务重新编码。

有没有人有示例代码来拆分列数据然后插入它,出于效率的原因可以完全在 SQL 中实现?

最佳答案

这是解决方案。

数据链接:

create table sentence(t varchar(100))

insert into sentence values
('Once upon a time in America'),
('Eyes wide shut')

DML:

select distinct ca.d as words from sentence s
cross apply(select split.a.value('.', 'varchar(100)') as d
from
(select cast('<x>' + REPLACE(s.t, ' ', '</x><x>') + '</x>' as xml) as d) as a
cross apply d.nodes ('/x') as split(a)) ca

输出:

words

a
America
Eyes
in
Once
shut
time
upon
wide

fiddle http://sqlfiddle.com/#!6/54dff/4

关于sql - 拆分列数据并插入 - SQL Server 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30284522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com