替换更新列的SQL子字符串
我很快就需要你的帮助。。。。我使用SQL2008R2 我有一个专栏,里面有这样的数据替换更新列的SQL子字符串,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我很快就需要你的帮助。。。。我使用SQL2008R2 我有一个专栏,里面有这样的数据 1_kka 2_bge 3_kil 该列应仅包含以下数字: 1 2 3 那么我应该如何使用replace和substring替换它呢 谢谢 在MySQL中,只需在字符串中添加0,您就可以非常轻松地做到这一点: select col + 0 from t +0将字符串视为整数,并自动将字符串开头的任何数字转换为数字 在其他数据库中,类似这样的操作将起作用: select cast(left(col, 1)
1_kka
2_bge
3_kil
该列应仅包含以下数字:
1
2
3
那么我应该如何使用replace和substring替换它呢
谢谢 在MySQL中,只需在字符串中添加0,您就可以非常轻松地做到这一点:
select col + 0
from t
+0
将字符串视为整数,并自动将字符串开头的任何数字转换为数字
在其他数据库中,类似这样的操作将起作用:
select cast(left(col, 1) as int)
from t
假设初始数字正好有一个数字(如您问题中的示例所示)。在MySQL中,只需将0添加到字符串中,就可以非常轻松地做到这一点:
select col + 0
from t
+0
将字符串视为整数,并自动将字符串开头的任何数字转换为数字
在其他数据库中,类似这样的操作将起作用:
select cast(left(col, 1) as int)
from t
假设初始数字正好有一位数字(如您问题中的示例所示)。如果您使用的是SQL Server,并且数字不限于1位,则可以使用
SELECT SUBSTRING(column, 1, CHARINDEX('_', column)-1)
FROM Table
如果您使用的是SQL Server,并且数字不限于1位,则可以使用
SELECT SUBSTRING(column, 1, CHARINDEX('_', column)-1)
FROM Table
如果下划线前可以出现多个数字,则需要如下内容:
SELECT LEFT(Fieldname,CHARINDEX('_',Fieldname)-1)
FROM table
如果下划线前可以出现多个数字,则需要如下内容:
SELECT LEFT(Fieldname,CHARINDEX('_',Fieldname)-1)
FROM table
这将更新包含下划线的每一行中的所有值
Update TableName
Set FieldName = Substring(FieldName, 1, CharIndex('_', FieldName) - 1)
Where CharIndex('_', FieldName) >= 1
这将更新包含下划线的每一行中的所有值
Update TableName
Set FieldName = Substring(FieldName, 1, CharIndex('_', FieldName) - 1)
Where CharIndex('_', FieldName) >= 1
试试这个:
update <TABLE> set COL = LEFT(COL,CHARINDEX('_', COL)-1)
updateset COL=LEFT(COL,CHARINDEX(''u',COL)-1)
试试这个:
update <TABLE> set COL = LEFT(COL,CHARINDEX('_', COL)-1)
updateset COL=LEFT(COL,CHARINDEX(''u',COL)-1)
抱歉我使用SQL 2012 R2抱歉我使用SQL 2012 R2没有SQL Server 2012 R2。。。要么是2008年,要么是2012年?:)没有SQL Server 2012 R2。。。要么是2008年,要么是2012年?:)