【发布时间】: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