如何在 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;
假设我有一个简单的查询:
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;