我想从 varchar 列中找到第一个整数值
i want to find first integer value from varchar column
我在 table 中有以下数据。
ID
test_SQL_01
test_SQL_02_PQR_01
test_SQL_03_055
test_SQL_04_ABC_99
我想要如下输出。
ID
01
02
03
04
如果 INTERGER
值始终为 2 位数,那么您可以这样做:
select substring(ID, patindex('%[0-9]%', ID), 2) as ID
from table t;
该方法可以处理不同长度的嵌入数字
测试数据:
DECLARE @t table(ID varchar(50))
INSERT @t values
('1'),
('2abc'),
('a3'),
('test_SQL_01'),
('test_SQL_02_PQR_01'),
('test_SQL_03_055'),
('test_SQL_04_ABC_99')
查询:
SELECT
STUFF(LEFT(ID, patindex('%[0-9][^0-9]%', ID + 'x')), 1,
patindex('%[^0-9][0-9]%', ID), '')
FROM @t
结果:
1
2
3
01
02
03
04
我在 table 中有以下数据。
ID
test_SQL_01
test_SQL_02_PQR_01
test_SQL_03_055
test_SQL_04_ABC_99
我想要如下输出。
ID
01
02
03
04
如果 INTERGER
值始终为 2 位数,那么您可以这样做:
select substring(ID, patindex('%[0-9]%', ID), 2) as ID
from table t;
该方法可以处理不同长度的嵌入数字
测试数据:
DECLARE @t table(ID varchar(50))
INSERT @t values
('1'),
('2abc'),
('a3'),
('test_SQL_01'),
('test_SQL_02_PQR_01'),
('test_SQL_03_055'),
('test_SQL_04_ABC_99')
查询:
SELECT
STUFF(LEFT(ID, patindex('%[0-9][^0-9]%', ID + 'x')), 1,
patindex('%[^0-9][0-9]%', ID), '')
FROM @t
结果:
1
2
3
01
02
03
04