【问题标题】:How to concatenate strings wrapped around the ' character如何连接包裹在'字符周围的字符串
【发布时间】:2019-07-30 20:40:21
【问题描述】:

我想将表中的 2 个字符串/字段连接到一个附加属性中,并使用 oracle 中的 sql select 语句将其包裹在“'”字符周围。

此声明

select SISTEMA, SUBSISTEMA, SISTEMA||'-'||SUBSISTEMA AS Concatenate 
from VETROCOCONDUTA

产生

SISTEMA SUBSISTEMA Concatenate
"AdZC","Meruge","AdZC-Meruge"

1

select SISTEMA, SUBSISTEMA, SISTEMA||'-'||SUBSISTEMA AS Concatenate 
from VETROCOCONDUTA

有效的代码,但不是我想要的

2

select SISTEMA, SUBSISTEMA, '||SISTEMA||'-'||SUBSISTEMA||' AS Concatenate 
from VETROCOCONDUTA

错误报告 - ORA-01722: número inválido

3 错误

select SISTEMA, SUBSISTEMA, ||'||SISTEMA||'-'||SUBSISTEMA||'|| AS Concatenate 
from VETROCOCONDUTA

SQL 错误:ORA-00936:falta expressão 00936. 00000 - “缺少表达式”

我希望代码生成:

SISTEMA SUBSISTEMA Concatenate
"AdZC","Meruge",'AdZC-Meruge'

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您需要在连接列的开头和结尾连接''''

    select 
      SISTEMA, 
      SUBSISTEMA, 
      '''' || SISTEMA || '-' || SUBSISTEMA  || '''' AS Concatenate 
    from VETROCOCONDUTA
    

    请参阅demo
    结果:

    > SISTEMA | SUBSISTEMA | CONCATENATE  
    > :------ | :--------- | :------------
    > AdZC    | Meruge     | 'AdZC-Meruge'
    

    如果列中确实有双引号并且您希望将它们删除:

    select 
      SISTEMA, 
      SUBSISTEMA, 
      '''' || replace(SISTEMA, '"', '') || '-' || replace(SUBSISTEMA, '"', '')  || '''' AS Concatenate 
    from VETROCOCONDUTA
    

    请参阅demo
    结果:

    > SISTEMA | SUBSISTEMA | CONCATENATE  
    > :------ | :--------- | :------------
    > "AdZC"  | "Meruge"   | 'AdZC-Meruge'
    

    【讨论】:

    • @Pedro 如果此答案解决了您的问题,请考虑接受它。
    【解决方案2】:

    看起来像XY Problem,如果你想要csv格式,那么你可以使用SQL Developer:

    SELECT /*csv*/ SISTEMA, SUBSISTEMA, SISTEMA||'-'||SUBSISTEMA AS Concatenate
    FROM VETROCOCONDUTA
    

    相关:Formatting Query Results to CSV in Oracle SQL Developer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2016-07-23
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多