Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 返回字符串中的第一个字符,即数字_Sql_Sql Server - Fatal编程技术网

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

我需要在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
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”这样的文本不应产生空白文本