如何在SQL Server中使用逻辑OR运算符和SQL更新查询?

时间:2012-02-03 09:05:00

标签: sql sql-server

我可以写这样的查询吗?

我想更新表,但我不确定需要更新多少列以及我可以应用多少条件。我完全依赖于SQL参数。

以下是我的示例SQL查询:

CREATE PROCEDURE UpdateRecords
(
@Category AS VARCHAR(20)='',
@Manufature AS VARCHAR(20)='',
@Model AS VARCHAR(20)='',

@CategoryNew AS VARCHAR(20),
@ManufatureNew AS VARCHAR(20),
@ModelNew AS VARCHAR(20),

@CategoryOld AS VARCHAR(20),
@ManufatureOld AS VARCHAR(20),
@ModelOld AS VARCHAR(20)

)
AS

UPDATE table19999
SET (@category='' OR category=@CategoryNew),
(@Manufature='' OR Manufature=@ManufatureNew),
(@Model='' OR Model=@ModelNew)
WHERE (@category='' OR category=@CategoryOld ) AND
(@Manufature='' OR Manufature=@ManufatureOld ) AND
(@Model='' OR Model=@ModelOld ) 

任何帮助?

2 个答案:

答案 0 :(得分:1)

update table199999

set 
   category=case when @category='' then category else @CategoryNew end,
   manufacture=case when @manufature='' then manufacture else @manufactureNew end

等等

答案 1 :(得分:0)

您可以在..中使用条件

UPDATE TABLE 
SET (MANUFACTURE = @MANUFACTURE, CATEGORY = @CATEGORY)
WHERE MANUFACTURE IN (@OPTION1, @OPTION2) 
OR CATEGORY IN (@CATEGORY1, @CATEGORY2)