繁体   English   中英

SQL 查询 ORDER BY 列值

[英]SQL Query ORDER BY column values

我有一列可以取 0 到 100 之间的任何值。

现在我有一个类型 TYPE1,它可以取值 2、4、16

TYPE2 可以取值 8、12、64。

现在我想先按 TYPE1 值对列进行排序,然后再按 TYPE2 值对列进行排序。 有什么办法可以做到这一点。

我的专栏只有这些值。 它不知道 Type1 或 Type2。 我正在使用 SQL2005

注意:TYPE1 和 TYPE2 不是列。 它们只是逻辑实体。

您可以在ORDER BY Caluse中指定两个列:

SELECT * FROM yourTable ORDER BY Type1, Type2

默认情况下,这将按升序对字段进行排序。 如果要反向排序,可以在列名之后使用DESC关键字。

什么是TYPE1和TYPE2,您的数据库是什么? 在MySQL中,您可以执行ORDER BY FIELD(columnnane, 2,4,16,8,12,64)

您可以将多个字段添加到Order By子句

select type1, type2 from table order by type1, type2
SELECT *
FROM table
ORDER BY type1, type2 -- the columns you want to sort in order

用 case 将类型 1 和类型 2 分开,然后按列排序:

SELECT * FROM yourTable ORDER BY case when column in (2,4,16) then 1, else 2 end,column

这样,首先您按类型 1 或 2 排序,它们按列的值排序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM