[英]how to add two columns as result in single query
I have below queries我有以下查询
select a.emp_id,a.AUTH_TYPE,b.NTE_TX as des1
from table a inner join NOTES b on b.TBL_ROW_ID=a.emp_id
where a.emp_id=56 and REF_NTE_TYP_ID=27
Output 1 Output 1
select a.emp_id,a.AUTH_TYPE,b.NTE_TX as des2
from table a inner join NOTES b on b.TBL_ROW_ID=a.emp_id
where a.emp_id=56 and REF_NTE_TYP_ID=28
Output 2 Output 2
Expected Output:预期 Output:
please help any one.请帮助任何人。
Simple Aggregation(MAX)
will help you to get your expected output. Simple
Aggregation(MAX)
将帮助您获得预期的 output。
Try this:尝试这个:
select a.emp_id,a.AUTH_TYPE
,MAX(CASE WHEN REF_NTE_TYP_ID=27 THEN b.NTE_TX END) as des1
,MAX(CASE WHEN REF_NTE_TYP_ID=28 THEN b.NTE_TX END) as des2
from table a inner join NOTES b on b.TBL_ROW_ID=a.emp_id
where a.emp_id=56 and REF_NTE_TYP_ID IN(27,28)
GROUP BY a.emp_id,a.AUTH_TYPE
If TBL_ROW_ID, REF_NTE_TYP_ID
is unique in your table NOTES
you can also use subqueries:如果
TBL_ROW_ID, REF_NTE_TYP_ID
在您的表中是唯一的NOTES
您还可以使用子查询:
select a.emp_id,a.AUTH_TYPE
, (SELECT b.NTE_TX
FROM NOTES b
WHERE b.TBL_ROW_ID=a.emp_id
AND REF_NTE_TYP_ID=27) as des1
, (SELECT b.NTE_TX
FROM NOTES b
WHERE b.TBL_ROW_ID=a.emp_id
AND REF_NTE_TYP_ID=28) as des2
from table a
where a.emp_id=56
If you have multiple text-entries you might want to concatenate these entries to just print one long text (replace the 2 occurences of SELECT b.NTE_TX
with the following):如果您有多个文本条目,您可能希望连接这些条目以仅打印一个长文本(将
SELECT b.NTE_TX
的 2 个出现替换为以下内容):
SELECT RTRIM(XMLAGG(XMLELEMENT(b.NTE_TX, CHR(10)).EXTRACT('//text()') ORDER BY b.NTE_TX).GetClobVal(),CHR(10))
I used CHR(10)
as text delimiter, just replace it with any other string you want.我使用
CHR(10)
作为文本分隔符,只需将其替换为您想要的任何其他字符串。 And you might also want some other ORDER BY
condition.而且您可能还需要其他一些
ORDER BY
条件。
With Q1 As (
select 56 emp_id, 'diple' auth_type
),
Q2 As (
Select 'text2' Des2,27 ref_nte_type_id, 56 row_id
Union All
Select 'text1' Des2,28 ref_nte_type_id, 56 row_id
)
Select Q1.*,Q2.Des2,Q3.Des2 Des1
From Q1
Inner Join Q2
On Q1.Emp_Id=Q2.Row_Id
And Q2.Ref_Nte_Type_Id=27
Inner Join Q2 Q3
On Q1.Emp_Id=Q3.Row_Id
And Q3.Ref_Nte_Type_Id=28
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.