gpt4 book ai didi

string - 在 T-SQL 中获取字符串的特定部分

转载 作者:行者123 更新时间:2023-12-02 22:38:09 25 4
gpt4 key购买 nike

我有一个像 prop234 这样的字符串,字母部分有固定长度,但数字部分可以是任意长度

我必须从 T-SQL 中的字符串中获取数字部分(在 SQL Server 2008 上)

我尝试使用 SUBSTRING 函数,但我不知道数字部分的长度,所以无法提供第三个参数,即长度

SUBSTRING ( expression ,start , length )

我知道起始索引但长度可以是任何值

一个解决方案是

SELECT substring([ColumnName], 5, LEN(ColumnName) - 4)

因为起始索引是固定的,即字母部分的长度是 4(固定的)

有没有更好的解决方案,如果字母部分的长度不是常量怎么办?

最佳答案

select stuff('prop234', 1,4,'')

如果长度不是常量:

declare @t table(expression varchar(100))
insert @t values('propprop234')

select stuff(expression, 1, patindex('%_[0-9]%', expression), '') from @t

编辑:为了确保处理不良数据,例如没有文本在前或没有数字在后,这里有一个稍微不同的方法:

select stuff(expression, 1,patindex('%[^0-9][0-9]%', expression + '0'), '') 
from @t

关于string - 在 T-SQL 中获取字符串的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11132734/

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