如何在 SQL 结果中切换列

How To Switch Columns In SQL Results

假设我有一个简单的查询:

SELECT
    A
   ,B
FROM
    C

我会得到这个结果:

A|B
---
x|x

在不改变查询(SELECT A, B)中的select子句的情况下,如何得到如下结果:

B|A
---
x|x
######## 编辑

我问的原因是因为我想做以下但语法不正确:

SELECT A, DISTINCT B
FROM C

我真的想要第一列中的 DISTINCT B,因为这样更容易查看和查找结果中的模式。

有更好的方法吗?

您可以使用子查询:

SELECT A, B FROM (SELECT B AS A, A AS B FROM C) AS sq;

显然列名不匹配,但列内容会被交换。

你不知道。在 SQL 中,列按查询指定的顺序返回。

除非你在谈论一个你说这符合条件的技巧问题:

SELECT
    B
   ,A
FROM (
    SELECT
        A
       ,B
    FROM
        C) D

或者除非您是在谈论在您的应用程序中以不同的顺序显示列,在这种情况下,这完全取决于您的应用程序。

但是,在纯 SQL 中,列顺序由查询定义。

您修改后的查询可以写成:

SELECT DISTINCT A, B
FROM RBase;

SELECT DISTINCT B, A
FROM RBase;