2013-07-19 78 views
0

我需要你的幫助,真正的快....我使用SQL 2008 R2SQL子字符串替換爲更新的列

我有此列中具有這種數據

1_kka 
2_bge 
3_kil 

列應該有隻有號碼是

1 
2 
3 

那麼我應該如何替換它使用替換和子字符串?

謝謝!

+1

沒有的SQL Server 2012 R2 ......它要麼2008R2還是2012? :) –

回答

2

在MySQL中,你可以僅僅通過增加做到這一點非常容易0 TOT他字符串:

select col + 0 
from t 

+ 0將字符串作爲一個整數,它會自動在字符串的開頭到任何數字轉換一個號碼。

其他數據庫中,這樣的事情會工作:

select cast(left(col, 1) as int) 
from t 

假設初始數量都只有一個數字(如在你的問題的例子)。

+0

對不起,我使用SQL 2012 R2 – Ban

+0

@Ban。 。 。然後第二個選項將起作用。 –

1

如果您使用的SQL Server,如果數量不限於1位,你可以使用

SELECT SUBSTRING(column, 1, CHARINDEX('_', column)-1) 
FROM Table 
1

如果多個數字可以下劃線出現之前,你需要這樣的事:

SELECT LEFT(Fieldname,CHARINDEX('_',Fieldname)-1) 
FROM table 
1

這將更新包含下劃線的每一行中的所有值。

Update TableName 
Set FieldName = Substring(FieldName, 1, CharIndex('_', FieldName) - 1) 
Where CharIndex('_', FieldName) >= 1 
0

試試這個:

update <TABLE> set COL = LEFT(COL,CHARINDEX('_', COL)-1)