在SQL中选择一个带虚拟值的虚拟列?

时间:2009-07-07 21:29:12

标签: 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。

2 个答案:

答案 0 :(得分:80)

试试这个:

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

答案 1 :(得分:11)

如果您只是将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;

虽然实际语法可能略微偏离