我有一个简单的 select * from myTable
查询,并且有一列名为Fruits
Fruits
列有以下数据:
Apple
Pear
Peach
Plum
Grape
我总是希望先获取葡萄,然后按顺序获取其他的,这样就可以得到以下结果:
Grape
Apple
Peach
Pear
Plum
一如既往地感谢您的帮助!
我有一个简单的 select * from myTable
查询,并且有一列名为Fruits
Fruits
列有以下数据:
Apple
Pear
Peach
Plum
Grape
我总是希望先获取葡萄,然后按顺序获取其他的,这样就可以得到以下结果:
Grape
Apple
Peach
Pear
Plum
一如既往地感谢您的帮助!
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
时,您正在分配一个值,以便首先对其进行排序,然后在[Fruits]
字段上执行二次排序。select * from myTable
order by
case when Fruits = 'Grape' then 0 else 1 end,
Fruits
在您的水果表中添加一个序号列,并将葡萄的序号设置为最低值(1),其余水果设置为不同的值(例如2)。
然后,您可以按照序号和水果名称排序。这将使葡萄排在顶部,其余水果按字母顺序排列在下方。