如何在SQL结果中切换列

时间:2015-01-09 00:27:16

标签: sql sql-server

让我说我有一个简单的查询:

SELECT
    A
   ,B
FROM
    C

我会得到这个结果:

A|B
---
x|x

如果不更改查询中的select子句(SELECT A,B),我如何收到如下结果:

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

我问的原因是因为我想要执行以下操作,但语法不正确:

SELECT A, DISTINCT B
FROM C

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

有更好的方法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用子查询:

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

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

答案 1 :(得分:1)

你不是。在SQL中,列以查询指定的顺序返回。

除非你在谈论一个技巧问题,否则你说这个问题属于:

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

或者,除非您正在讨论在应用程序中以不同顺序显示列,否则完全取决于您的应用程序。

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

答案 2 :(得分:1)

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

SELECT DISTINCT A, B
FROM RBase;

SELECT DISTINCT B, A
FROM RBase;