SQL-是否可以按其他列对列进行排序?

SQL-是否可以按其他列对列进行排序?,sql,sqlite,Sql,Sqlite,我有一张这样的桌子 Column1 Column2 Column3 3 2 1 是否可以按ASC的顺序返回列?1> 2>3 Column3 Column2 Column1 1 2 3 对于基于列的排序,没有内置的sql级别支持。时期您必须手动设置顺序,但要做到这一点,您已经需要知道它们的值。如果您已经知道它们的值,那么执行查询就没有意义了 您可以做的是使用union将列转换为记录,并以这种方式对它们进行排序。输出将采用不同的格式,但您可以实

我有一张这样的桌子

Column1 Column2 Column3
3       2       1
是否可以按ASC的顺序返回列?1> 2>3

 Column3 Column2 Column1
 1       2       3

对于基于列的排序,没有内置的sql级别支持。时期您必须手动设置顺序,但要做到这一点,您已经需要知道它们的值。如果您已经知道它们的值,那么执行查询就没有意义了

您可以做的是使用
union
将列转换为记录,并以这种方式对它们进行排序。输出将采用不同的格式,但您可以实现动态排序。但您必须提前知道所有列的名称:

select col1 as val, 'col1' as colname from yourtable
union
select col2, 'col2' from yourtable
union
select col3, 'col3' from yourtable
order by val asc

val
字段提供值,
colname
字段告诉您数据来自哪个列。

3,2,1是每列中的值吗?或者只是引用列?mysql还是sqlite?您只需在执行选择操作时设置列顺序。没有内置的sql级别支持基于列进行排序。时期您必须手动设置顺序,但要做到这一点,您已经需要知道它们的值。如果您已经知道它们的值,那么执行查询就没有意义了。@wu4m4n它们是列any integer中的值。@Dekel我正在使用android studio。