22,209
社区成员
发帖
与我相关
我的任务
分享
create table test
(
a int ,
b int ,
statur int default (0)
)
insert into test values(1,12,0),(32,2,0),(1,12,0),(1,12,0),(1,12,0),(1,12,0);
update test
set statur=(case when a>b then 0 else 1 end),
a=(case when a>b then b else a end)
select * from test
/*
a b statur
1 12 1
2 2 0
1 12 1
1 12 1
1 12 1
1 12 1
*/
update test
set statur=(case when a>b then 0 else 1 end,
a=(case when a>b then b else a end)
这样不可以吗?
create table test
(
a int ,
b int ,
STATUS AS (CASE WHEN a > b THEN 0 ELSE 1 END) ) --用计算列来的更直接些
INSERT INTO test(a,b)
SELECT 1,2
UNION ALL
SELECT 3,4
UNION ALL
SELECT 6,5
SELECT * FROM Test
/*
a b STATUS
1 2 1
3 4 1
6 5 0*/
update test
set statur=(case when a>b then 0 else 1 end)
--直接更新就好了吧,不用存储过程哈