删除数字

时间:2012-01-31 06:45:14

标签: sql sql-server sql-server-2008 sql-server-2005 tsql

col1

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

像这样

3 个答案:

答案 0 :(得分:2)

试试这个

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

如果 col1 中的文本始终采用相同的格式(3个字符,后跟任意数量的数字),则可以使用子字符串函数:

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

在这种情况下会返回ABX