首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用replace或trim的SQL update语句

使用replace或trim的SQL update语句
EN

Stack Overflow用户
提问于 2016-03-24 19:24:57
回答 4查看 2.6K关注 0票数 0

我有一个表,它有一个列,其中包含如下数据

代码语言:javascript
复制
Column X
Sprint 1, Sprint 2, Sprint 3
Sprint 1
Sprint 2, Sprint 3
Sprint 4
Sprint 3, Sprint 4

我想要做的是更新列中的数据,只保留最后一个逗号之后的文本,因此最终结果将是:

代码语言:javascript
复制
Column X
Sprint 3
Sprint 1
Sprint 3
Sprint 4
Sprint 4
EN

回答 4

Stack Overflow用户

发布于 2016-03-24 19:55:24

如果您使用的是MSSQL,这将会起作用。

代码语言:javascript
复制
SELECT LTRIM(RIGHT(X, CHARINDEX(',', REVERSE(',' + X)) - 1))
FROM TableName

不确定其他数据库

票数 0
EN

Stack Overflow用户

发布于 2016-03-24 19:57:17

下面是更新的一种方法:

代码语言:javascript
复制
;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:

代码语言:javascript
复制
UPDATE mytable
SET COLUMN_X = LTRIM(SUBSTRING_INDEX(COLUMN_X, ',', -1));
票数 0
EN

Stack Overflow用户

发布于 2016-03-24 20:13:53

代码语言:javascript
复制
> UPDATE table1 SET columnx = SUBSTRING(columnx,LENGTH(columnx)-8,LENGTH(columnx)+1);

我已经在postgresSQL上尝试了上面的查询,它对我来说工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36199020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档