SQL子串替换更新列

时间:2013-07-19 17:36:41

标签: sql sql-server sql-server-2012

我真的需要你的帮助....我使用SQL 2008 R2

我有这个有这种数据的专栏

1_kka
2_bge
3_kil 

该列应该只有

的数字
1
2
3

那么如何使用replace和substring替换它?

谢谢!

5 个答案:

答案 0 :(得分:2)

在MySQL中,只需添加0 tot string string即可轻松完成此任务:

select col + 0
from t

+ 0将字符串视为整数,并自动将字符串开头的任何数字转换为数字。

在其他数据库中,这样的东西可以工作:

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

假设初始号码只有一位数(如问题中的示例所示)。

答案 1 :(得分:1)

如果您使用的是SQL Server,如果数字不限于1位,您可以使用

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

答案 2 :(得分:1)

如果在下划线之前可以出现多个数字,则需要这样的内容:

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

答案 3 :(得分:1)

这将更新包含下划线的每一行中的所有值。

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

答案 4 :(得分:0)

试试这个:

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