【问题标题】:How to remove spaces after comma, in a column using SQL?如何在使用 SQL 的列中删除逗号后的空格?
【发布时间】:2017-06-01 14:11:12
【问题描述】:

我想在使用 SQL 脚本的列中删除逗号后的空格。 我正在使用 oracle 数据库。

例如,

我想从“名称”列中删除一个空格(在 sathish、kumar、raghavan 之后),

我希望表格看起来像

同样是所有要修改的记录。 我试过了,这个查询,

update incitable SET name = LTRIM(RTRIM(name));

但它并没有做出任何改变,

请帮忙。

抱歉语法错误。

【问题讨论】:

  • 为什么要将值列表存储在单个列中?假设您坚持使用该数据模型,它是否总是在逗号后正好一个空格,还是可以有多个,或其他空格,如制表符?
  • 没有每个逗号分隔的值都可以在前端的单个下拉列表中发挥作用。我前端的角网格不接受空格或制表符空格。

标签: sql oracle oracle10g


【解决方案1】:

使用replace():

UPDATE incitable
    SET name = REPLACE(name, ', ', ',');

TRIM() 删除字符串开头和结尾的空格,但不删除中间的空格。鉴于TRIM() 可用,因此无需使用LTRIM()RTRIM()(除非您对SQL Server 有迷恋)。

注意:将值列表存储在单个列中是一个非常非常糟糕的主意。 Oracle 提供了许多其他解决方案,例如联结表(存储列表的 SQLish 方式)、嵌套表、JSON 格式,当然还有更多方法。

【讨论】:

  • 但它是否适用于诸如“sss、safa、aafa、agag、agga”之类的具有更多子字符串数量的值。
  • @s.sathishkumar 。 . .它适用于字符串中任意数量的逗号。
  • @UdayShankar 。 . .这不是这里要问的问题。如果您还有其他问题,请将其作为问题提出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 2021-06-20
  • 2017-12-24
相关资源
最近更新 更多