594
社区成员
发帖
与我相关
我的任务
分享
DECLARE @t TABLE (n INT)
INSERT INTO @t VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)
SELECT * FROM
@t AS t1
,@t AS t2
,@t AS t3
,@t AS t4
,@t AS t5
,@t AS t6
,@t AS t7
,@t AS t8
,@t AS t9
,@t AS t10
,@t AS t11
,@t AS t12
WHERE 12 = (
SELECT COUNT(DISTINCT n)
FROM (VALUES (t1.n), (t2.n), (t3.n), (t4.n)
,(t5.n), (t6.n), (t7.n), (t8.n)
,(t9.n), (t10.n), (t11.n), (t12.n)) X(n)
)
ORDER BY 1,2,3,4,5,6,7,8,9,10,11,12
这是按邹老师想法改出来的, 但运行10分钟还没出结果, 后面再想下有没有效率更高的办法DECLARE @t TABLE (n INT)
INSERT INTO @t VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)
SELECT * FROM
@t AS t1
,@t AS t2
,@t AS t3
,@t AS t4
,@t AS t5
,@t AS t6
,@t AS t7
,@t AS t8
,@t AS t9
,@t AS t10
,@t AS t11
,@t AS t12
WHERE t1.n+t2.n+t3.n
+t4.n+t5.n+t6.n
+t7.n+t8.n+t9.n
+t10.n+t11.n+t12.n = (1+12)*12/2
ORDER BY 1,2,3,4,5,6,7,8,9,10,11,12
写出来了, 不过运行时间很长, 晚一点贴结果。DECLARE @t TABLE (n INT)
INSERT INTO @t VALUES (1),(2),(3),(4)
SELECT *
FROM @t a, @t b, @t c, @t d
WHERE 4 =( SELECT COUNT(DISTINCT n) FROM(VALUES
(a.n), (b.n), (c.n), (d.n)
) X(n))
ORDER BY 1, 2, 3, 4
DECLARE @t TABLE (n INT)
INSERT INTO @t VALUES (1),(2),(3)
SELECT * FROM @t AS a
INNER JOIN @t AS b ON a.n!=b.n
INNER JOIN @t AS c ON a.n!=c.n AND b.n!=c.n
ORDER BY a.n,b.n,c.n
/*
n n n
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
*/