卸下NUMERICS

问题描述:

COL1卸下NUMERICS

ABX67206 
ABX67245 
ABX67275 
ABX67312 
ABX67313 
ABX67333 
ABX67335 

Excel工作表,其中有一个名为policy_prefix (datatype - nvarchar)柱。

例如:我有col1 - ABX67206我需要输出为ABX意味着从列中删除所有数值。

有时我得到的是COL1-'ABXTU02' 我需要输出为‘ABXTU’

在这里讨论的记录是指只删除数值和长度保持相同

的出放像

COL1

ABX ABX ABX ABX ABX ABXTU ABXTU ABX ABXTUYT

这样

试试这个

declare @tbl table (i varchar(50)) 

insert into @tbl values ('qwe1456'),('w4'),('op75'),('123') 

SELECT i, LEFT(i,PATINDEX('%[0-9]%',i)-1) 
FROM @tbl 
+0

像'1a2'这样的价值呢? – 2012-01-31 07:14:20

+0

@KirillPolishchuk像'ASD *(123)':)这样的价值呢? – 2012-01-31 07:16:46

+0

@Kirill Polishchuk政策号码显然以字母作为前缀,后缀为数字。 – deutschZuid 2012-01-31 20:42:40

您可以使用10次REPLACE功能,即:

select replace(replace(replace(column, '0', ''), '1', ''), '2', '') ... and so on 
+1

+1同样的想法在这里 – cctan 2012-01-31 07:08:40

如果COL1文本始终是相同的格式(3个字符,可以使用子字符串函数:

SELECT x = SUBSTRING('ABX67206',1,3);

在这种情况下将返回ABX

+0

如果我们知道这是第3个字符...左()会更清晰。 – 2012-02-01 17:32:46