【发布时间】:2014-09-26 13:16:53
【问题描述】:
我正在尝试基于现有表创建视图。 该表将如下所示:
+------+------+------+------+
| col1 | col2 | col3 | col4 |
+------+------+------+------+
| 1 | a1 | a2 | a3 |
| 2 | b1 | b2 | b3 |
| 3 | c1 | c2 | c3 |
| 4 | d1 | d2 | d3 |
| 5 | e1 | e2 | e3 |
| 6 | f1 | f2 | f3 |
+------+------+------+------+
结果视图应具有以下方式的行:
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
| 1 | a1 | a3 |
| 2 | a2 | a3 |
| 3 | b1 | b3 |
| 4 | b2 | b3 |
| 5 | c1 | c3 |
| 6 | c2 | c3 |
+------+------+------+
我的 SQL 查询如下所示:
(select col1 as "col 1",col2 as "col 2",col4 as "col 3" from t1)
union
(select col1 as "col 1",col3 as "col 2",col4 as "col 3" from t1)
order by "col 2","col 3"
但order by 似乎不起作用。对于order by 之后给出的任何别名,我得到的行顺序相同
提前致谢
【问题讨论】:
-
你确定你发布的结果表真的是你想要的吗?源中没有 col1=2 且 a2 和 a3 并排出现的行。
-
我不知道 MySQL 中的反引号,感谢 Andrity M 指出这一点。还有一个模棱两可的别名,重命名它解决了这个问题。谢谢大家的回答。
标签: mysql sql sql-order-by union