2012-01-31 24 views
2

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

這樣

回答

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 
+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

1

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

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

+1同樣的想法在這裏 – cctan 2012-01-31 07:08:40

1

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

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

在這種情況下將返回ABX

+0

如果我們知道這是第3個字符...左()會更清晰。 – 2012-02-01 17:32:46