SQL中如何根据表里的字段判断后插入数据?

wu123432121 2016-08-24 11:18:34
如题,现在有两张表,表一有两个字段 订单号和金额 , 表二有三个字段 订单号、金额和 blargessflag.如果表一的金额为0,则表二中的blargessflag的值为Y;如果表一的金额不为0.则表二中的blargessflag的值为N
表一: 表二:
订单号 金额 订单号 金额 blargessflag
a1 0 a1 0 Y
a2 10 a2 10 N
a3 0 a3 0 Y
a4 10 a4 10 N


insert into  表二  (订单号,金额,blargessflag)   select  订单号,金额  from  表一 

怎么加个判断,如果金额为0,blargessflag为Y;
金额不为0,blargessflag为N;
...全文
276 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu123432121 2016-08-24
  • 打赏
  • 举报
回复
引用 2 楼 TurboWay 的回复:
INSERT  INTO 表二
        ( 订单号 ,
          金额 ,
          blargessflag
        )
        SELECT  订单号 ,
                金额 ,
                CASE WHEN 金额 = 0 THEN Y
                     ELSE N
                END AS blargessflag
        FROM    表一
额 报错 在 SET 子句中多次指定了列名 'blargessflag'。在同一 SET 子句中不得为一个列分配多个值。请修改 SET 子句,以确保一个列仅更新一次。如果 SET 子句更新了某视图的多列,那么列名 'blargessflag' 可能会在该视图定义中出现两次。
wu123432121 2016-08-24
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
case when blargessflag = 0 then 'N' else 'Y' end
我按你这么写 报错 在 SET 子句中多次指定了列名 'blargessflag'。在同一 SET 子句中不得为一个列分配多个值。

insert into  表二  (订单号,金额,blargessflag)   
select  订单号,金额 ,case when 金额 = 0 then 'N' else 'Y' end 
 from  表一 
版主 麻烦 看看 是不是要写成存错过程
TurboWay 2016-08-24
  • 打赏
  • 举报
回复
INSERT  INTO 表二
        ( 订单号 ,
          金额 ,
          blargessflag
        )
        SELECT  订单号 ,
                金额 ,
                CASE WHEN 金额 = 0 THEN Y
                     ELSE N
                END AS blargessflag
        FROM    表一
卖水果的net 2016-08-24
  • 打赏
  • 举报
回复
case when blargessflag = 0 then 'N' else 'Y' end

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧