![](/img/trans.png)
[英]How to join multiple rows from same table and select only the column with not NULL values + add an alias to the column
[英]How to select same column with multiple alias name from same table?
我需要從表中選擇以下組合的值
SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '11AX';
SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '34XA';
SELECT Details FROM Avenger WHERE Id = '1' and KEY = '11AZ';
SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '11ZA';
在單個查詢中,我知道我可以使用
SELECT * FROM Avenger WHERE ID='1';
但是我需要使用所有選定的值,並在單個查詢中將其分配給“ 四變量” 。
我可以使用任何想法或解決方案嗎?
Id Key Details
1 11AX Mark
1 34XA Bruce
1 11AZ Mr. Green
1 11ZA Hulk
2 11AX Robert jr.
2 34XA Toney
2 11AZ Iron Man
2 11ZA Arrogant
3 11AX Thor
3 34XA Asgard
3 11AZ God
3 11ZA Hamer
我們可以嘗試在此處交替使用REGEXP_LIKE
:
SELECT *
FROM yourTable
WHERE Id = '1' AND REGEXP_LIKE("KEY", '11AX|34XA|11AZ|11ZA')
實際上,我不確定您是否打算在原始查詢中使用LIKE
。 您可能真的只想這樣做:
SELECT *
FROM yourTable
WHERE Id = '1' "KEY" IN ('11AX', '34XA', '11AZ', '11ZA')
我認為您需要一個case
表達:
select details,
(case when key like '11AX' then 1
when key like '34XA' then 2
when key like '11AZ' then 3
when key like '11ZA' then 4
end) as flag
from avenger a
where id = 1;
如果只想使用一個表達式選擇值,請從in
開頭:
where id = 1 and key in ('11AX', '34XA', '11AZ', '11ZA')
如果要將值作為單個字符串傳遞,則regexp_like()
可以工作:
where id = 1 and regexp_like(key, '^11AX|34XA|11AZ|11ZA$')
兩個注意事項:
key
。 regexp_like()
通常會禁止使用索引,因此對於性能而言, =
和in
是更好的選擇。 也許您打算:
select max(case when key like '11AX' then details end) as deails_11ax,
max(case when key like '34XA' then details end) as details_34XA,
max(case when key like '11AZ' then details end) as details_11AZ,
max(case when key like '11ZA' then details end) as details_11AZ
from avenger a
where id = 1;
這將返回一行包含四列。
我想我知道您想要這樣做:
select
(SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '11AX') as var1,
(SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '34XA') as var2,
(SELECT Details FROM Avenger WHERE Id = '1' and KEY = '11AZ') as var3,
(SELECT Details FROM Avenger WHERE Id = '1' AND KEY LIKE '11ZA') as var4
from dual
還有一個樞軸選項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.