我正在对“性能”表运行查询,我想为所有行插入一个具有相同值的列,而无需使用alter,update等。
我写了一个案例声明,它可以工作,但是还有更精致的方法吗?
这是一个简短的查询:
SELECT id, name, class,
CASE
WHEN id IS NOT NULL THEN 'Actuals'
ELSE 'Forecast'
END AS type
FROM performance
基本上,我需要将所有值标记为“ Actuals”。
还有许多其他的数据集,我将使用不同的标签,然后附加所有标签
请明确-无需更新表性能本身
答案 0 :(得分:0)
在您的情况下使用common table expression
。
它将在现有数据中添加新的column
,您可以将其用于下一步。
就您而言,它既不是在现有的db结构中添加也不插入任何东西。
with CTE as (
SELECT id, name, class,
CASE WHEN id IS NOT NULL THEN 'Actuals' ELSE 'Forecast' END AS type
FROM table_performance
)
select * from CTE ----- It give you all the columns from [table] and add another column as you needed.
OR
如果此条件固定,则可以为其创建一个view
。