首页 > 解决方案 > 如何连接具有别名 PLSQL 的两列

问题描述

我刚从PL/SQL开始,我对连接的概念不是很清楚,所以现在我需要连接两个具有别名的列的结果,并将结果显示在一个中。

以下是我使用它们各自的别名进行的查询:

(SELECT SPRCMNT_TEXT
        FROM SPRCMNT
        WHERE SPRCMNT_PIDM = SHRDGMR_PIDM
        AND SPRCMNT_CMTT_CODE = '15'
        AND SPRCMNT_ORIG_CODE = 'FTDF') FOLIO_CONTROL,

(SELECT REGEXP_SUBSTR(SPRCMNT_TEXT_NAR, 'Profesionista="([^"]+)"', 1, 1, NULL, 1)
        FROM SPRCMNT
        WHERE SPRCMNT_PIDM = SHRDGMR_PIDM
        AND SPRCMNT_CMTT_CODE = '15'
        AND SPRCMNT_ORIG_CODE = 'FTDF') PROFESIONISTA,

我需要的是连接别名PROFESIONISTA+FOLIO_CONTROL并将其结果显示在一个新列中。

标签: sqloracleselectplsqlconcat

解决方案


除了子句之外,这两个查询都是相同的from,所以我认为你想要:

SELECT 
    SPRCMNT_TEXT 
    || REGEXP_SUBSTR(SPRCMNT_TEXT_NAR, 'Profesionista="([^"]+)"', 1, 1, NULL, 1) res
FROM SPRCMNT
WHERE 
    SPRCMNT_PIDM = SHRDGMR_PIDM 
    AND SPRCMNT_CMTT_CODE = '15' 
    AND SPRCMNT_ORIG_CODE = 'FTDF'

这为您提供了一个名为 的单列结果res,其中两个字符串连接在一起(这是运算符||在 Oracle 中所做的)。

您可能需要添加分隔符:

    SPRCMNT_TEXT 
    || ' -- '
    || REGEXP_SUBSTR(SPRCMNT_TEXT_NAR, 'Profesionista="([^"]+)"', 1, 1, NULL, 1) res

推荐阅读