所以我在SQL(postgres)中进行基本的连接查询...
SELECT first_name, last_name
FROM table1, table2
WHERE table1.id = table2.customer_id
在返回的结果查询中,可以生成名为" default_value"的额外列。字符串值为" test"在每行返回,如果是这样如何?我没有尝试使用新数据永久更改表,只需在结果集中添加一个额外的列。用例是将sql查询存储在Heroku dataclip中,以便生成csv报告。
答案 0 :(得分:12)
是的,这很容易:
select first_name,
last_name,
'test' as default_value, --<< a "virtual" column containing a character value
42 as the_answer --<< another column containing a numeric value
from table1
join table2 on table1.id = table2.customer_id;
您还应该在WHERE
子句中停止使用这些过时的隐式连接。请改用显式JOIN
运算符。它使查询更加健壮,防止意外忘记的连接条件。
答案 1 :(得分:1)
“是否可以为虚拟列的值设置条件?”
select first_name,
last_name,
CASE WHEN first_name = 'Mary' THEN 'test' WHEN first_name = 'John' THEN 'test2'
ELSE 'Not known' END as default_value,
42 as the_answer
from table1
join table2 on table1.id = table2.customer_id;