2017-03-28 176 views
1

我正在从oracle数据库中进行基本的SQL选择。从SQL select语句连接值

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 

以下三个字段被用作其它系统的关键我做一个导入到,所以我需要得到以下为一个字段:c.saracmt_comment_text, '2017' as "YEAR", szrspdc_prog_code.

在此先感谢您的帮助。

+0

其中SQL版本?你可以使用从SQL 2012 concat,否则只是做经典的方式来连接..'你好'+'世界' – maSTAShuFu

+0

你可以使用||运营商..下面的东西 SELECT firstname || ''||姓氏AS studentname FROM students; – Jocket

+0

Gah。旧的'A,B'加入语法。它烧伤了我们。 –

回答

1

Oracle中的字符串连接运算符是||。所以,你需要使用下面的查询:

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

谢谢!我曾尝试||但最后没有as field_name – ero

0

你想这样做在PL/SQL或在接收端C#/ VB.NET代码?我假设PL/Sql。

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; 

希望这会有所帮助。

R/ 普雷斯科特....