2009-07-07 64 views
28

我有一个表具有以下在SQL中选择一个具有虚拟值的虚拟列?

Table1 
col1 col2 
------------ 
1  A 
2  B 
3  C 
0  D 

结果

col1 col2 col3 
------------------ 
0  D  ABC 

我不知道怎么去写查询,col1和col2上可以通过这个

select col1, col2 from Table1 where col1 = 0; 
选择

我应该如何着手添加一个值为ABC的col3。

回答

63

试试这个:

select col1, col2, 'ABC' as col3 from Table1 where col1 = 0; 
+2

如何做到这一点的PostgreSQL的? – 2015-07-21 15:26:14

+0

它适用于PostgreSQL,只需使用简单的报价值,不用双引号。 – Erowlin 2017-10-09 14:59:39

10

如果你的意思只是ABC一样简单值,回答上面是正常工作的一个。

如果您的意思是未连接主查询所选行的值,则需要使用子查询。

像这样的东西可能工作:

SELECT t1.col1, 
t1.col2, 
(SELECT GROUP_CONCAT(col2 SEPARATOR '') FROM Table1 t2 WHERE t2.col1 != 0) as col3 
FROM Table1 t1 
WHERE t1.col1 = 0; 

实际语法可能有点过,虽然