当前位置: 代码迷 >> Sql Server >> 数据库 条件语句 使用解决方法
  详细解决方案

数据库 条件语句 使用解决方法

热度:75   发布时间:2016-04-24 18:53:22.0
数据库 条件语句 使用


上面是我写的存储过程  里面使用  if 条件语句 

下面图片是运行时报的错误。。。 





该怎么修改语句呢。。。
------解决方案--------------------
可以用case...when...then语法来实现你要求的功能,你这种写法没用过!
------解决方案--------------------
引用:
可以用case...when...then语法来实现你要求的功能,你这种写法没用过!

+1

update Man 
set TaskID=case when TaskIdd is null then @manID else TaskID end,
TaskIdd=case when (TaskID is null and TaskIdd is null) then TaskIdd else @manID end


------解决方案--------------------

------解决方案--------------------
要用case才行
------解决方案--------------------
程序块中只能使用CASE WHEN THEN,IF ELSE是包裹程序块的
CASE WHEN

UPDATE Man SET TaskId = CASE WHEN TaskId IS NULL THEN @TaskId 
     ELSE TaskId END,
   TaskIdd = CASE WHEN TaskId IS NULL THEN TaskIdd
                  ELSE CASE WHEN TaskIdd IS NULL THEN @TaskId
                            ELSE TaskIdd END END
WHERE ID = @ManId

IF ELSE

IF EXISTS (SELECT 1 FROM Man WHERE ID = @ManId AND TaskId IS NULL)
BEGIN
UPDATE MAN SET TaskId = @TaskId WHERE ID = @ManId AND TaskId IS NULL
END   
IF EXISTS (SELECT 1 FROM Man WHERE ID = @ManId AND TaskId IS NOT NULL AND TaskIdd IS NULL)
BEGIN
UPDATE Man SET TaskIdd = @TaskId WHERE ID = @ManId AND TaskId IS NOT NULL AND TaskIdd IS NULL
END
  相关解决方案