
数据表字段如图,两个字段,要求得出 a 1,b 2,c 3。或者 a 2,b1,c3,或者a3,b2,c1,两个字段组合不得交叉重复。

阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
根据你的问题,理解如下:
你有两个字段,要求通过这两个字段的组合,不得重复,输出不同的组合。例如,你有两个字段a和b,要求输出a 1,b 2,c 3;也可以输出a 2,b 1,c 3 或 a 3,b 2,c 1。
我将使用 Oracle 来解决这个问题。
WITH T AS (
SELECT
level AS a,
MOD((LEVEL-1),2)+1 AS b,
CASE
WHEN MOD((LEVEL-1),2) = 1 THEN 1
WHEN MOD((LEVEL-1),2) = 0 THEN 2
END AS c
FROM dual
CONNECT BY LEVEL <= 6
)
SELECT * FROM T;
在这个例子中,我们使用 CONNECT BY LEVEL <= 6 生成 6 条记录,然后使用 MOD 函数来实现 a和 b字段的交替输出,最后利用 CASE 语句实现 c字段的输出。
你可以根据自己的需求调整 LEVEL 的值。