我怎么能达到这样的目的?
DECLARE @TEMP_TABLE TABLE (DATA VARCHAR(MAX), SHADOW_ID INT)
DECLARE @TEMP_TABLE1 TABLE (ENT VARCHAR(MAX), RMR VARCHAR(MAX), DTM VARCHAR(MAX))
INSERT INTO @TEMP_TABLE1 (ENT) SELECT DATA from @TEMP_TABLE WHERE DATA LIKE 'ENT%'
INSERT INTO @TEMP_TABLE1 (RMR) SELECT DATA from @TEMP_TABLE WHERE DATA LIKE 'RMR%'
INSERT INTO @TEMP_TABLE1 (DTM) SELECT DATA from @TEMP_TABLE WHERE DATA LIKE 'DTM%'
没有任何空值,因为每个语句填充1列,空值为其他两个。
谢谢!
答案 0 :(得分:2)
您似乎正在尝试创建数据透视或交叉表查询。
insert into @TEMP_TABLE1 (ENT, RMR, DTM)
select a.ENT, a.RMR, a.DTM
from (
select t.SHADOW_ID
, (select DATA from @TEMP_TABLE where SHADOW_ID = t.SHADOW_ID and DATA like 'ENT%') as ENT
, (select DATA from @TEMP_TABLE where SHADOW_ID = t.SHADOW_ID and DATA like 'RMR%') as RMR
, (select DATA from @TEMP_TABLE where SHADOW_ID = t.SHADOW_ID and DATA like 'DTM%') as DTM
from @TEMP_TABLE as t
group by t.SHADOW_ID
) a
假设每个SHADOW_ID只有一个ENT,RMR和DTM值。如果情况并非如此,那么我必须同意@JeremyHolovacs。
我建议也将SHADOW_ID放入@ TEMP_TABLE1,这样你就可以知道数据的来源。