SQL Server列排序,有2个或更多列正在排序
我的表格中有以下记录:SQL Server列排序,有2个或更多列正在排序,sql,sql-server,Sql,Sql Server,我的表格中有以下记录: id sequence question answer letter 1 1 1 + 1 2 B 2 2 2 + 2 4 E 3 3 4 + 4 8 A 4 4 8 + 8 16 D 5 5 16 + 16 32 C 有
id sequence question answer letter
1 1 1 + 1 2 B
2 2 2 + 2 4 E
3 3 4 + 4 8 A
4 4 8 + 8 16 D
5 5 16 + 16 32 C
有没有可能让我的桌子看起来像这样
id sequence question answer letter
1 1 1 + 1 8 A
2 2 2 + 2 2 B
3 3 4 + 4 32 C
4 4 8 + 8 16 D
5 5 16 + 16 4 E
我的意思是,第一个是我按顺序排列,但我也希望得到字母的顺序,因为如果不是,它们将处于相同的位置,因此问题可以很容易回答,我希望答案随字母一起出现,并按字母顺序排列。请急需您的帮助:(--DDL
--SQL
SQL Fiddle:-
你应该解释一下你想要完成什么。混合和匹配不同行中的不同列通常没有意义。我的意思是,我只是想把第一个列放到第二个列中,它们只在一个表中,我坚持这样做:(
CREATE TABLE test(id int,sequence int,question varchar(20),answer int, letter varchar(5) );
INSERT INTO test VALUES(1,1,'1+1',2,'B');
INSERT INTO test VALUES(2,2,'2+2',4,'E');
INSERT INTO test VALUES(3,3,'4+4',8,'A');
INSERT INTO test VALUES(4,4,'8+8',16,'D');
INSERT INTO test VALUES(5,5,'16+16',32,'C');
SELECT A.id,
A.sequence,
A.question,
B.answer,
B.letter
FROM
(
SELECT id,
sequence,
question,
ROW_NUMBER() OVER ( ORDER BY id ) AS rn
FROM test
) A
INNER JOIN
(
SELECT answer,
letter,
ROW_NUMBER() OVER ( ORDER BY letter ) AS rn
FROM test
) B
ON A.rn = B.rn;