带有多个where子句的SQL Insert

带有多个where子句的SQL Insert,sql,insert,Sql,Insert,我怎样才能实现这样的目标 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 INT

我怎样才能实现这样的目标

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列,并将空值填充到其他两列中


谢谢

看起来您正在尝试创建透视或交叉表查询

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中,这样您就可以知道数据来自何处。

我无法想象您为什么要这样做。对于您的第二次插入,您的意思是
像“RMR%”这样的数据在何处。
?是的,我不好,我将进行更正。我用其他方式解决了问题。但还是要谢谢你的帮助。