【发布时间】:2016-05-22 15:19:03
【问题描述】:
需要帮助编写查询
我有一列的表,值 A、B、C 和 D。
如何编写查询以获得以下结果: AB,AC,AD,BA,BC,BD,...
对此有任何帮助。提前致谢
【问题讨论】:
标签: oracle oracle11g oracle10g
需要帮助编写查询
我有一列的表,值 A、B、C 和 D。
如何编写查询以获得以下结果: AB,AC,AD,BA,BC,BD,...
对此有任何帮助。提前致谢
【问题讨论】:
标签: oracle oracle11g oracle10g
试试:
with x as (
select 'A' as col from dual
union all
select 'B' as col from dual
union all
select 'C' as col from dual
union all
select 'D' as col from dual
)
select *
from x join x x2 on x.col != x2.col
输出:
COL COL_1
"A" "B"
"A" "C"
"A" "D"
"B" "A"
"B" "C"
"B" "D"
"C" "A"
"C" "B"
"C" "D"
"D" "A"
"D" "B"
"D" "C"
【讨论】:
这个 SQL 应该可以解决问题:
SELECT T1.COL || T2.COL
FROM MY_TABLE T1, MY_TABLE T2
WHERE T1.COL != T2.COL;
这里,MY_TABLE 是您的表格,其中包含 COL 列。
【讨论】:
很酷的答案。这是我的版本,两个答案的组合:
WITH x AS (
SELECT 'A' AS col FROM dual
UNION ALL
SELECT 'B' AS col FROM dual
UNION ALL
SELECT 'C' AS col FROM dual
UNION ALL
SELECT 'D' AS col FROM dual
)
SELECT x1.col || x2.col AS xx
FROM x x1 JOIN x x2 ON x1.col <> x2.col
【讨论】: