如何订购两列

时间:2016-09-19 06:14:36

标签: mysql sql-server

enter image description here 例如,我有一个表格,其中包含姓氏,名字和参考编号。

根据年份和身份证号码的组合对参考号码进行排序。类似的,(2001-0001)到(2016-9999)。

我想在查询中发生的事情是Refence编号将按升序排序,而姓氏也按升序排序。

假设:

Reference No. | Last Name | First Name 

2002-0001     | Alban     | Martin
2016-9999     | Edison    | Alex
2001-0001     | Abraham   | Patrick
2002-5555     | Berkley   | Jack
2002-9999     | Clark     | Peter
2001-9999     | Coleman   | James
.....
.....
2001-5555     | Barrack   | Thomas

结果将如下;

Reference No. | Last Name | First Name 

2001-0001     | Abraham   | Patrick
2001-5555     | Barrack   | Thomas
2001-9999     | Coleman   | James
2002-0001     | Alban     | Martin
2002-5555     | Berkley   | Jack
2002-9999     | Clark     | Peter
.....
.....
2016-9999     | Edison    | Alex

我已经尝试了我在谷歌找到的答案中的建议,但它并没有完全回答我的需要。

希望你们帮助我 任何评论将不胜感激 非常感谢你

1 个答案:

答案 0 :(得分:0)

将所有必需的列以逗号分隔

排序

LastName ASC / LastName:按升序对列数据进行排序/排序。

LastName DESC:按降序对列数据进行排序/排序

DECLARE @tbl1 AS TABLE
(
   RefenceNumber VARCHAR(50),
   LastName VARCHAR(50),
   FirstName VARCHAR(50)
)


INSERT INTO @tbl1 VALUES('2002-0001','Alban','Martin')
INSERT INTO @tbl1 VALUES('2016-9999','Edison','Alex')
INSERT INTO @tbl1 VALUES('2001-0001','Abraham','Patrick')
INSERT INTO @tbl1 VALUES('2002-5555','Berkley','Jack')
INSERT INTO @tbl1 VALUES('2002-9999','Clark','Peter')
INSERT INTO @tbl1 VALUES('2001-9999','Coleman','James')
INSERT INTO @tbl1 VALUES('2001-5555','Barrack','Thomas')

SELECT
    *
FROM @tbl1
Order By RefenceNumber, LastName

<强>输出:

enter image description here