Sql 将一个字段等分为2
如何将表“t2”的“col”字段与a、b、c、d作为记录等分为两个相等的字段:Col1 a、b和Col2 c、d 表:t2Sql 将一个字段等分为2,sql,ms-access,Sql,Ms Access,如何将表“t2”的“col”字段与a、b、c、d作为记录等分为两个相等的字段:Col1 a、b和Col2 c、d 表:t2 Col A B C D 输出: Col1 Col2 A C B D 这就是我尝试过的: SELECT a.col1, "" as col2 FROM (SELECT Top 50 Percent Col as Col1 From t2 order by Col ASc) as a Union all SELECT "", b.col1 FRO
Col
A
B
C
D
输出:
Col1 Col2
A C
B D
这就是我尝试过的:
SELECT a.col1, "" as col2
FROM (SELECT Top 50 Percent Col as Col1 From t2 order by Col ASc) as a
Union all
SELECT "", b.col1
FROM (SELECT top 50 Percent Col as Col1 From t2 order by Col Desc) as b
来自上面的输出:
col1 col2
a
b
d
c
我只能在Ms access中访问到目前为止的位置。非常感谢您的帮助
创建表“t2”
Create Table t2(Col Char)
插入值
INSERT INTO t2 ([Col]) VALUES ("a")
INSERT INTO t2 ([Col]) VALUES ("b")
INSERT INTO t2 ([Col]) VALUES ("c")
INSERT INTO t2 ([Col]) VALUES ("d")
是的,如果您有顺序ID,则可以使用交叉表:
TRANSFORM
First(T.Col) AS Col
SELECT
([ID]+1)\2 AS DualID
FROM
(SELECT ID, [ID] Mod 2 AS ColID, [Col]
FROM YourTable) AS T
GROUP BY
([ID]+1)\2
PIVOT
T.ColID;
古怪的问题。也许透视/交叉表查询是最好的方法。出于好奇,这是真实世界的问题吗?@Andre不,练习问题。完美。非常感谢。
SELECT A1.COL1 & "-" & B1.COL1 AS PAIRS
FROM
(SELECT TOP 50 PERCENT A.Col AS COL1 FROM t2 AS A ORDER BY A.Col ASC) AS A1
INNER JOIN
(SELECT TOP 50 PERCENT B.Col AS COL1 FROM t2 AS B ORDER BY B.Col DESC) AS B1
ON A1.COL1 <> B1.COL1
WHERE (SELECT COUNT(*) FROM t2 AS C WHERE C.Col < A1.COL1) = (SELECT
COUNT(*) FROM t2 AS D WHERE D.Col > B1.COL1)