Sql 返回字符串中的第一个字符,即数字
我需要在SQLServer中使用T-SQL将文本隔离在列中第一个数字之前 例如 我希望收到结果:Sql 返回字符串中的第一个字符,即数字,sql,sql-server,Sql,Sql Server,我需要在SQLServer中使用T-SQL将文本隔离在列中第一个数字之前 例如 我希望收到结果: StreetName 我的挑战是找出第一个数字是哪个字符 有什么建议吗 select left(street, patindex('%_[0-9]%', street + '1')) from ( select 'StreetName 11A-D' street union all select 'StreetName' street ) x 结果: StreetName StreetName
StreetName
我的挑战是找出第一个数字是哪个字符
有什么建议吗
select left(street, patindex('%_[0-9]%', street + '1'))
from (
select 'StreetName 11A-D' street
union all
select 'StreetName' street
) x
结果:
StreetName
StreetName
结果:
StreetName
StreetName
请尝试:
declare @var nvarchar(100)='StreetName 11A-D';
Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1)
请尝试:
declare @var nvarchar(100)='StreetName 11A-D';
Select SUBSTRING(@var, 1, PatIndex('%[0-9]%', @var)-1)
MS Sql有一个名为patindex的函数,允许您将正则表达式与Sql组合。MS Sql有一个名为patindex的函数,允许您将正则表达式与Sql组合。我之所以使用“奇怪”语法,是为了防止像其他解决方案一样会导致错误。此外,我希望像“StreetName”这样的文本不会导致空白文本。我使用“奇怪”语法的原因是为了防止像其他解决方案一样会导致错误。此外,我希望像“StreetName”这样的文本不应产生空白文本