2009-07-07 95 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; 

實際語法可能有點過,雖然