SQL:将一些字符串替换为一列中的其他字符串值并写入临时表

时间:2017-11-13 18:42:09

标签: sql select case

更新:论坛答案提供的跟随语法...点击错误

SELECT * INTO #df_ERA4_a_temp 
            CASE WHEN [REQMNT] = 'A' THEN 'ANT'   
                 WHEN [REQMNT] = 'A-12' THEN 'A12'
                 WHEN [REQMNT] = 'ADS-B' THEN 'ADSB' 
                 ELSE [REQMNT]
            END  
    FROM #df_ERA4_a

错误:消息156,级别15,状态1,行129 关键字' CASE'附近的语法不正确。

我试图在临时表的一列中清理文本数据。之后,我想将表写入另一个临时表。

以下是我使用的代码......但我收到了错误消息。

SELECT * INTO #test_b
        CASE WHEN [COL] = 'A-12' THEN 'Ant'
             WHEN [COL] = 'A-9' THEN 'Alpha'  
             WHEN [COL] = 'AD' THEN 'Aging'
             ELSE WHEN [COL] = 'Art' THEN 'Artwork'     
    FROM #test_a

我收到的错误是:关键字' CASE'

附近的语法不正确

3 个答案:

答案 0 :(得分:2)

编辑:如果我正确理解了问题,您需要将测试a中的值插入测试b。如果是这样的话会更好!您可以查看此信息以获取帮助:SELECT INTO TABLE

INSERT INTO #test_b [test_b.columns]
    SELECT [test_a.columns], 
    CASE WHEN [COL] = 'A-12' THEN 'Ant'
        WHEN [COL] = 'A-9' THEN 'Alpha'  
        WHEN [COL] = 'AD' THEN 'Aging'
        WHEN [COL] = 'Art' THEN 'Artwork'
        ELSE 'something'
    END    
FROM #test_a

ELSE不能在WHEN之前,只需要ELSE,您需要使用CASE关闭END 。您可以参考:SQL CASE

SELECT * INTO #test_b
    CASE WHEN [COL] = 'A-12' THEN 'Ant'
        WHEN [COL] = 'A-9' THEN 'Alpha'  
        WHEN [COL] = 'AD' THEN 'Aging'
        WHEN [COL] = 'Art' THEN 'Artwork'
        ELSE 'something'
    END
    FROM #test_a

答案 1 :(得分:0)

没有ELSE和在一起......就像你一样 ELSE WHEN [COL] =' Art'

StringBuilder sBuilder = new StringBuilder();
for(int x = 0;x<=140;x++) {
  sBuilder.append("<item");
  sBuilder.append("\n");
  sBuilder.append("  android:duration=\"500\"");
  sBuilder.append("\n");
  sBuilder.append("  android:drawable=\"@drawable/ic_heart_"+ x + "\"/>");
  sBuilder.append("\n");
}
System.out.print(sBuilder);

以下是使用CASE in SQL

的教程

答案 2 :(得分:0)

写下INTO&#34; #test_b&#34;在&#34; FROM#test_a&#34;之前并在此之前结束