有一个简单的select * from myTable
查询和一个名为Fruits
Fruits
包含以下数据:
Apple
Pear
Peach
Plum
Grape
我总是首先要Grape,然后依次要其余的,所以结果将是
Grape
Apple
Peach
Pear
Plum
一如既往地感谢您的帮助!
答案 0 :(得分:7)
我会尝试这样的事情:
DECLARE @myTable TABLE([Fruits] VARCHAR(20))
INSERT INTO @myTable VALUES('Apple')
INSERT INTO @myTable VALUES('Pear')
INSERT INTO @myTable VALUES('Peach')
INSERT INTO @myTable VALUES('Plum')
INSERT INTO @myTable VALUES('Grape')
SELECT *
FROM @myTable
ORDER BY
CASE WHEN([Fruits] = 'Grape') THEN 0 ELSE 1 END,
[Fruits]
在ORDER BY
中,您在[Fruits]
字段为Grape
时分配值,以便您可以先对其进行排序,然后对{{1}进行二次排序}} field。
答案 1 :(得分:3)
select * from myTable
order by
case when Fruits = 'Grape' then 0 else 1 end,
Fruits
答案 2 :(得分:2)
在Fruits表中添加一个序数列,并为Grapes指定最低序数(1),将其余水果添加到不同的值(2表示效果正常)。
然后您可以按顺序排序,然后按水果名称排序。这将把Grapes放在顶部,然后以Alpha顺序放在下面。