SQL Sql将两列合并为一个变量

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22034308/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 01:11:16  来源:igfitidea点击:

Sql combining two column into one variable

sqloracle

提问by mekafe

I have a sql command

我有一个 sql 命令

SELECT A.*,
       K1.AD CONTACTAD,
       K1.SYD CONTACTSYD,
       KR.AD KURUM,
       K2.AD SUPERVISORAD,
       K2.SYD  SUPERVISORSOYAD,
       K3.AD REQUIRERAD,
       K3.SYD REQUIRERSOYAD
FROM  
       TD_ACTIVITY A,
       KK_KS K1,
       KK_KS K2,
       KK_KS K3,
       KK_KR KR
WHERE  A.INS_CONTACT_PERSON = K1.ID
   AND A.SUPERVISOR =  K2.ID
   AND A.REQUIRERID = K3.ID 
   AND A.INSTITUTIONID = KR.ID

I want to combine CONTACTADand CONTACTSOYADinto one variable like CONTACT.How can i do that?

我想将CONTACTAD和组合CONTACTSOYAD成一个变量,例如 .CONTACT我该怎么做?

回答by G one

Use ||for concatenating in oracle

使用||Oracle中级联

SELECT A.*,
       K1.AD || K1.SYD as CONTACT,
       KR.AD KURUM,
       K2.AD SUPERVISORAD,
       K2.SYD  SUPERVISORSOYAD,
       K3.AD REQUIRERAD,
       K3.SYD REQUIRERSOYAD
FROM  
       TD_ACTIVITY A,
       KK_KS K1,
       KK_KS K2,
       KK_KS K3,
       KK_KR KR
WHERE  A.INS_CONTACT_PERSON = K1.ID
   AND A.SUPERVISOR =  K2.ID
   AND A.REQUIRERID = K3.ID 
   AND A.INSTITUTIONID = KR.ID

回答by Alexander

Use Oracle concatenation operator

使用Oracle 连接运算符

SELECT A.*,
       K1.AD || ' ' || K1.SYD CONTACT
       KR.AD KURUM,
       K2.AD SUPERVISORAD,
       K2.SYD SUPERVISORSOYAD,
       K3.AD REQUIRERAD,
       K3.SYD REQUIRERSOYAD 
  FROM TD_ACTIVITY A,
       KK_KS K1,
       KK_KS K2,
       KK_KS K3,
       KK_KR KR 
 WHERE A.INS_CONTACT_PERSON = K1.ID 
       AND A.SUPERVISOR =  K2.ID 
       AND A.REQUIRERID = K3.ID 
       AND A.INSTITUTIONID = KR.ID

回答by Dba

Try like this,

试试这样,

SELECT A.*,
       concat(k1.ad, k1.syd) concat
       kr.ad kurum,
       k2.ad supervisorad,
       k2.syd supervisorsoyad,
       k3.ad requirerad,
       k3.syd requirersoyad
FROM   td_activity A,
       kk_ks k1,
       kk_ks k2,
       kk_ks k3,
       kk_kr kr
WHERE  A.ins_contact_person = k1.ID
AND    A.supervisor         = k2.ID
AND    A.requirerid         = k3.ID
AND    A.institutionid      = kr.ID;

Refer hereto know more about CONCATin Oracle.

请参阅此处以了解有关CONCATOracle 的更多信息。

回答by Mudassir Hasan

SELECT K1.AD || columnName "CONTACT"

Here columnName is name of column for which alias is CONTACTSOYAD.

这里 columnName 是别名为 的列的名称CONTACTSOYAD

You cannot operate on alias name in same SELECT listso below will give error

您不能在同一个 SELECT 列表中对别名进行操作,因此下面会出错

SELECT CONTACTAD ||  CONTACTSOYAD "CONTACT" , ...rest of columns...
FROM
..rest of query..

回答by Sai Avinash

You can try this:

你可以试试这个:

select CONTACTAD || CONTACTSOYAD from emp;

|| is the concatenation operator in Oracle

|| 是 Oracle 中的连接运算符

hope this helps..

希望这可以帮助..

回答by TechDo

Please try:

请尝试:

(K1.AD||K1.SYD) AS CONTACT