暂无图片
求一SQL(oracle 数据库)
我来答
分享
暂无图片 匿名用户
求一SQL(oracle 数据库)
暂无图片 5M

有表table_a, 有下面几个字段,我想加一列(E列),规则是tpfg=1的,就取对应的月份(这个员工所有的行都是这个月份),假设没有一条记录tpfg = 1, 就填200001



我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
ssllmm

ALTER TABLE table_a ADD e_column NUMBER;

UPDATE table_a
SET e_column = COALESCE(
MAX(CASE WHEN tpfg = 1 THEN TO_NUMBER(TO_CHAR(month, 'YYYYMM')) END)
OVER (PARTITION BY emid),
200001
);

暂无图片 评论
暂无图片 有用 0
Thomas

ALTER TABLE table_a ADD e_column NUMBER;

UPDATE table_a a SET e_column = nvl((select month from table_a b where b.emid=a.emid and b.tpfg=1),'200001');

暂无图片 评论
暂无图片 有用 1
伪文艺

ALTER TABLE table_a ADD e_column NUMBER;

update table_a set e_column= month where tpfg=1;

update table_a set e_column = 200001 where tpfg != 1;

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏