Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将一个字段等分为2_Sql_Ms Access - Fatal编程技术网

Sql 将一个字段等分为2

Sql 将一个字段等分为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

如何将表“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
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)