我有一个表格,其中的列包含这样的数据
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
答案 0 :(得分:0)
如果您使用的是MSSQL,这将有效。
SELECT LTRIM(RIGHT(X, CHARINDEX(',', REVERSE(',' + X)) - 1))
FROM TableName
不确定其他数据库
答案 1 :(得分:0)
以下是进行更新的方法:
;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));
答案 2 :(得分:0)
> UPDATE table1 SET columnx = SUBSTRING(columnx,LENGTH(columnx)-8,LENGTH(columnx)+1);
我在postgresSQL上尝试了上面的查询,它对我来说很好。
答案 3 :(得分:0)
以下内容也应该有效:
SELECT MID(column,len(column)-7,8) AS new_value
FROM table_name;
(如果' sprint'之后的数字是单个数字,则此方法有效)