gpt4 book ai didi

sql - 从字符串中去除非数字字符

转载 作者:行者123 更新时间:2023-12-02 01:10:18 24 4
gpt4 key购买 nike

我目前正在做一个数据转换项目,需要从字符串中删除所有字母字符。不幸的是,我无法创建或使用函数,因为我们不拥有源计算机,这使得我通过搜索以前的帖子找到的方法无法使用。

在 select 语句中执行此操作的最佳方法是什么?速度并不是什么大问题,因为这只会运行 30,000 多条记录左右,而且是一次性声明。

最佳答案

您可以在一条语句中完成此操作。您并没有真正创建包含 200 多个 REPLACE 的语句,对吗?!

update tbl
set S = U.clean
from tbl
cross apply
(
select Substring(tbl.S,v.number,1)
-- this table will cater for strings up to length 2047
from master..spt_values v
where v.type='P' and v.number between 1 and len(tbl.S)
and Substring(tbl.S,v.number,1) like '[0-9]'
order by v.number
for xml path ('')
) U(clean)

工作中SQL Fiddle使用示例数据显示此查询

复制如下以供后代使用:

create table tbl (ID int identity, S varchar(500))
insert tbl select 'asdlfj;390312hr9fasd9uhf012 3or h239ur ' + char(13) + 'asdfasf'
insert tbl select '123'
insert tbl select ''
insert tbl select null
insert tbl select '123 a 124'

结果

ID  S
1 390312990123239
2 123
3 (null)
4 (null)
5 123124

关于sql - 从字符串中去除非数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504732/

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