有没有办法在SELECT部分中使用CASE语句来执行select INTO?在将数据转换到新表中之前,我需要做一些数据转换。
发布于 2012-03-16 00:44:39
好的。在这里,#test被复制到#testnew,其中case语句在每个值以‘f’开头的项目前添加一个*:
create table #test(id int, item1 varchar(10), item2 varchar(10))
insert into #test values(1,'foo','bar')
, (2,'fud','fudge')
go
select t.id
, item1=case when left(item1,1)='f' then '*'+item1 else item1 end
, item2=case when left(item2,1)='f' then '*'+item2 else item2 end
into #testnew
from #test t
go
select * from #testnew;
go
drop table #test;
drop table #testnew;
go结果:
id item1 item2
----------- ----------- -----------
1 *foo bar
2 *fud *fudge发布于 2012-03-16 00:38:39
是的,您可以:
SELECT CASE SourceField WHEN 1 THEN 'Yes' ELSE 'No' END AS SourceField
INTO DestinationTable
FROM SourceTable发布于 2012-03-16 00:38:57
是。请确保为该列命名。还要确保将Case语句的值强制转换为显式类型,以避免出现问题。
SELECT
Cast((
Case(ID)
When (1) Then 'Text'
Else NULL
End) as varchar(50)
) as NewColumn
INTO #TempTable
FROM MyTablehttps://stackoverflow.com/questions/9724094
复制相似问题