this question的答案几乎回答了我的,但并不完全。我该怎么做:
col0 col1 col2
data0 a foo
data1 b foo
data2 c fee
data3 d fee
进入这个? (仅复制foo
行)
col0 col1 col2
data0 a foo
data1 b foo
data2 c fee
data3 d fee
data0 a bar
data1 b bar
bar
来自语句,而不是数据,原始表有2个新行。
答案 0 :(得分:1)
insert into T (col0, col1, col2)
select col0, col1, 'bar'
from T
如果通过“复制”表示select
,那么工会将像其他答案一样工作,或者您可以尝试这样做:
select col0, col1, case when num = 0 then col2 else 'bar' end as col2
from T, (select 0 as num union all select 1) as dup
答案 1 :(得分:0)
一个选项,union all
:
select col0, col1, col2
from yourtable
union all
select col0, col1, 'bar'
from yourtable
答案 2 :(得分:0)
假设您只想要这两个硬编码字符串的结果,以下查询将为您提供。
SELECT
col0,
col1,
'foo'
FROM MyTable
UNION ALL
SELECT
col0,
col1,
'bar'
FROM MyTable;
更实际的情况是使用临时表,这样就不会为每个方案复制查询。
CREATE TABLE #Options
(
col2 VARCHAR(50)
);
INSERT INTO #Options VALUES ('foo'), ('bar');
SELECT
col0,
col1,
#Options.col2
FROM MyTable
CROSS JOIN #Options;
答案 3 :(得分:0)
select col0, col1, col2
from yourtable
union all
select col0, col1, 'bar'
from yourtable
where col2 = 'foo'