[英]Filter SQL query by a unique set of column values, regardless of their order
[英]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.