[英]SQL Select Data From Dual in nth row
我想知道我们是否可以从双重中选择并将结果放在任何结果行? 我想要的结果将是:
CID EXT
------ ------
ALL ALL
-- --
DATAA DATAA
DATAB DATAB
DATAC DATAC
我在做
SELECT 'ALL' AS "CID"
, 'ALL' AS "EXT"
FROM DUAL
UNION
SELECT *
FROM
(
SELECT DISTINCT COLUMN AS "CID"
, COLUMN AS "EXT"
FROM TABLEA
)
但我的结果是
CID EXT
------ ------
-- --
ALL ALL
DATAA DATAA
DATAB DATAB
DATAC DATAC
将一个任意值放在列表顶部是相当容易的。
select 'ALL', 1
from dual
union
select your_column_name, 2
from tablea
order by 2, 1
基本上,您正在提供动态排序。
如果你想要包含“ - ”,这对我来说有点奇怪,请使用第三个选择和另一个联合。
select 'All', 1
from dual
union
select '--', 2
from dual
union
select your_column_name, 3
from tablea
order by 2, 1
SELECT 'ALL' AS "CID"
, 'ALL' AS "EXT"
FROM DUAL
UNION ALL
SELECT *
FROM
(
SELECT DISTINCT COLUMN AS "CID"
, COLUMN AS "EXT"
FROM TABLEA
)
ORDER BY CASE WHEN "CID" = 'ALL' THEN 1 ELSE 2 END
,"CID"
,"EXT";
好的,我想我找到了答案。 如果我使用杰弗里的回答,我会得到
ERROR: ORA-01785: ORDER BY item must be the number of a SELECT-list expression
所以,我只是改为
SELECT 'ALL' AS "CID" , 'ALL' AS "EXT" FROM DUAL
UNION
SELECT * FROM
(
SELECT DISTINCT COLUMN AS "CID", COLUMN AS "EXT"
FROM TABLEA ORDER BY "CID", "EXT"
)
然后我的结果工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.