0

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

我有这个列有这种数据

1_kka
2_bge
3_kil 

该列应该只有数字

1
2
3

那么我应该如何使用替换和子字符串来替换它呢?

谢谢!!

4

5 回答 5

2

在 MySQL 中,您只需在字符串中添加 0 即可非常轻松地做到这一点:

select col + 0
from t

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

在其他数据库中,这样的事情会起作用:

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

假设初始数字恰好只有一位数字(如您问题中的示例所示)。

于 2013-07-19T17:39:43.870 回答
1

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

SELECT SUBSTRING(column, 1, CHARINDEX('_', column)-1)
FROM Table
于 2013-07-19T17:42:55.647 回答
1

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

SELECT LEFT(Fieldname,CHARINDEX('_',Fieldname)-1)
FROM table
于 2013-07-19T17:43:36.620 回答
1

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

Update TableName
Set FieldName = Substring(FieldName, 1, CharIndex('_', FieldName) - 1)
Where CharIndex('_', FieldName) >= 1
于 2013-07-19T17:48:46.887 回答
0

尝试这个:

update <TABLE> set COL = LEFT(COL,CHARINDEX('_', COL)-1)
于 2013-07-19T17:52:13.333 回答