我有一个表,它有一个列,其中包含如下数据
Column X
Sprint 1, Sprint 2, Sprint 3
Sprint 1
Sprint 2, Sprint 3
Sprint 4
Sprint 3, Sprint 4我想要做的是更新列中的数据,只保留最后一个逗号之后的文本,因此最终结果将是:
Column X
Sprint 3
Sprint 1
Sprint 3
Sprint 4
Sprint 4发布于 2016-03-24 19:55:24
如果您使用的是MSSQL,这将会起作用。
SELECT LTRIM(RIGHT(X, CHARINDEX(',', REVERSE(',' + X)) - 1))
FROM TableName不确定其他数据库
发布于 2016-03-24 19:57:17
下面是更新的一种方法:
;WITH ToUpdate AS (
SELECT COLUMN_X,
LTRIM(RIGHT(COLUMN_X, IIF(t.i = 0, LEN(COLUMN_X), t.i - 1))) AS new_X
FROM mytable
CROSS APPLY (VALUES (CHARINDEX(',', REVERSE(COLUMN_X)))) AS t(i)
)
UPDATE ToUpdate
SET Column_X = new_X注意:上面的代码可以在SQL Server 2012+中运行。
以下内容适用于MySQL:
UPDATE mytable
SET COLUMN_X = LTRIM(SUBSTRING_INDEX(COLUMN_X, ',', -1));发布于 2016-03-24 20:13:53
> UPDATE table1 SET columnx = SUBSTRING(columnx,LENGTH(columnx)-8,LENGTH(columnx)+1);我已经在postgresSQL上尝试了上面的查询,它对我来说工作得很好。
https://stackoverflow.com/questions/36199020
复制相似问题