2017-03-28 8 views
1

Ich mache eine grundlegende SQL-Auswahl aus einer Oracle-Datenbank.Verketten von Werten aus SQL Select-Anweisung

select DISTINCT spriden_pidm, a.saracmt_comment_text, spriden_id, c.saracmt_comment_text, '2017' as "YEAR", szrspdc_prog_code 
from spriden, sarappd, saradap, stvapdc, saracmt a, saracmt c, szrspdc 
where blah blah blah 

Die folgenden drei Felder werden als Schlüssel in einem anderen System verwendet mache ich einen Import in so muss ich die folgenden in einem Feld bekommen: c.saracmt_comment_text, '2017' as "YEAR", szrspdc_prog_code.

Vielen Dank im Voraus für Ihre Hilfe.

+0

, welche Version von SQL? Sie können concat von SQL 2012 verwenden, sonst tun Sie einfach die klassische Art zu verketten .. 'Hallo' + 'Welt' – maSTAShuFu

+0

Sie können || Operator ..etwas wie unten SELECT Vorname || "" || Nachname AS Studentenname FROM Studenten; – Jocket

+0

Gah. Die alte veraltete 'A, B' Joinsyntax. Es verbrennt uns. –

Antwort

1

Der String-Verkettungsoperator in Oracle ist ||. So müssen Sie die folgende Abfrage verwenden:

select DISTINCT 
c.saracmt_comment_text || '2017' || szrspdc_prog_code as key_field 
spriden_pidm, a.saracmt_comment_text, spriden_id, 
c.saracmt_comment_text, '2017' as "YEAR", szrspdc_prog_code 
from spriden, sarappd, saradap, stvapdc, saracmt a, saracmt c, szrspdc 
where blah blah blah 
+0

danke! Ich hatte es versucht || aber hatte am Ende kein als field_name – ero

0

Haben Sie dies in PL/SQL machen wollen oder auf der Empfängerseite ist C#/VB.NET-Code? Ich nehme PL/Sql an.

Procedute SomeName(DataOut OUT Varchar2) IS 
    WResult Varchar2(4000) -- I don't know the size of 2 of the table columns involed so I use the max size of Varchar2 which is 4000 
Begin 

    select into wResult a.saracmt_comment_text || YEAR || szrspdc_prog_code from 
    (
     select DISTINCT spriden_pidm, a.saracmt_comment_text, spriden_id, 
     c.saracmt_comment_text, '2017' as "YEAR", szrspdc_prog_code from 
     spriden, sarappd, saradap, stvapdc, saracmt a, saracmt c, 
     szrspdc_prog_code where Conditions 
    ); 

    DataOut := wResult; 
End; 

Hoffe, das hilft.

R/ Prescott ....

Verwandte Themen