当前位置: 代码迷 >> Sql Server >> []如何根据条件,给数据库里面打标签
  详细解决方案

[]如何根据条件,给数据库里面打标签

热度:88   发布时间:2016-04-24 08:52:48.0
[求助]怎么根据条件,给数据库里面打标签?
菜鸟求助啊~~~TAT~
比如
ID       DATE            SKU
1      2015-01-01       001
1      2015-02-23       857
2      2015-03-25       005
2      2015-08-25       001
2      2015-01-23       223
3      2015-03-05       257
3      2015-02-22       895       

我怎么在最后加一个标签,把第最早消费的记录打上flag 1
变成
ID       DATE            SKU       flag
1      2015-01-01       001         1
1      2015-02-23       857
2      2015-03-25       005
2      2015-08-25       001
2      2015-01-23       223          1
3      2015-03-05       257
3      2015-02-22       895          1
------解决思路----------------------
UPDATE table1
   SET flag = 1
 WHERE NOT EXISTS(SELECT *
                    FROM table1 t
                   WHERE t.SKU = table1.SKU
                     AND t.DATE < t.DATE)

------解决思路----------------------

试试这个:
select id,date,sku,
       case when flag = 1 then flag else null end as flag 
from 
(
select *,
       row_number() over(partition by id order by date ) flag
from tb
)t
  相关解决方案