首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成sql案例

生成sql案例
EN

Stack Overflow用户
提问于 2017-05-02 12:20:15
回答 1查看 51关注 0票数 1

我正在尝试用新表中的新数据来转换一些旧数据。

我创建了一个sql脚本,它返回case语句的构建。这就是我从select语句中得到的一个例子:'WHEN a=2然后350‘。

代码语言:javascript
复制
UPDATE A
SET A.a = CASE
        (SELECT CONCAT('WHEN a= ', PP.Id, ' THEN ', LI.Id)
            FROM  A PP
                JOIN B LI ON LI.Description = PP.Name
                    JOIN C L ON LI.List_Id = L.Id
        WHERE L.Code = 'Code')
    END

因此,通常情况下,它应该为每一行代码生成以下内容:

A=1然后2的情况

A=2然后3的情况

A=3然后4的情况

..。

但是,当我想要执行代码时,它会在END语句上出现一个错误。这可能是因为它期望类似于a=1然后0结束而不是select语句的情况。

有解决办法吗?还是我做错了?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 12:24:58

您可以使用一个子查询来选择li.id的值,而不是试图构建一个li.id表达式(这将不像您正在尝试的那样工作):

代码语言:javascript
复制
UPDATE A
  set A.a = (
  select li.id 
  from A PP
    JOIN B LI ON LI.Description = PP.Name
    JOIN C L  ON LI.List_Id = L.Id
  where pp.id = A.a
    and l.code = 'Code'
  )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43737754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档