【问题标题】:how to remove spaces in front of updated values for column in sql?如何删除sql中列更新值前面的空格?
【发布时间】:2022-12-22 01:05:14
【问题描述】:

我有一张看起来像这样的表:

Category Name
T - 1029 - PHONE sjss
T-2629172-LAPTOP ssus
T-26124-PC udia
T-22
T - 1029 - PHONE

我正在使用此语句通过在第二个破折号之后获取整个字符串来更新表中的“名称”列:

update tech_table
set name = SUBSTR(Category, INSTR(Category, '-', 1,2)+1)
where category like '%-%-%'

这是运行语句的结果:

Category Name
T - 1029 - PHONE ' 'PHONE
T-2629172-LAPTOP LAPTOP
T-26124-PC PC
T-22
T - 1029 - PHONE ' 'PHONE

' 'PHONE -> PHONE 前的' ' 只是说明数据更新到该列后,'Name' 列中PHONE 值前有一个空格字符。出现空格是因为我的语句采用了“类别”字段中第二个“-”之后的所有字符,包括空格字符。

我可以在我的更新语句中包含一些内容来删除更新后的“名称”值前面的空格,以便表格看起来像这样吗

Category Name
T - 1029 - PHONE PHONE
T-2629172-LAPTOP LAPTOP
T-26124-PC PC
T-22
T - 1029 - PHONE PHONE

我试图在不更改“类别”列的情况下消除“电话”值之前的空格。 我知道有一个替换函数,例如 REPLACE(ColumnValue, ' ','') 可以删除空格,但不确定如何将它包含在我上面的更新语句中。

【问题讨论】:

    标签: sql sql-update oracle-sqldeveloper substr


    【解决方案1】:

    您可以执行以下操作:

     Orig:  set name = SUBSTR(Category, INSTR(Category, '-', 1,2)+1)
    
    
     New:   set name = REPLACE(SUBSTR(Category, INSTR(Category, '-', 1,2)+1), ' ','')
    

    【讨论】:

      猜你喜欢
      • 2012-09-29
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      相关资源
      最近更新 更多