【问题标题】:How to create a CASE statement depending on the result of a Select Statement with parameter?如何根据带参数的 Select 语句的结果创建 CASE 语句?
【发布时间】:2014-12-22 13:46:25
【问题描述】:

使用 SQL Server,如何根据带参数的 Select 语句的值创建 CASE 语句?

如果表 Products 中不存在 ID (NULL),我需要插入数据,如果存在,我需要更新数据。

我有以下 CASE 语句查询,但语法错误:

Select CASE WHEN (select ID from Products where ProdID = @ProdID) = NULL
then 
(INSERT INTO Table...)
Else
(Update Table...)
END as Prods
FROM Products

【问题讨论】:

  • sql server 还是 mysql ?
  • 我认为您正在寻找 IF 语句
  • 听起来您应该改用合并语句:en.wikipedia.org/wiki/Merge_%28SQL%29INSERT ... ON DUPLICATE KEY UPDATE 如果您使用的是 mysql

标签: sql case


【解决方案1】:
IF EXISTS( select ID from Products where ProdID = @ProdID )
BEGIN
   (Update Table...)
END

ELSE
 (INSERT INTO Table...)

对于 SQL Server 2008 + 版本,请参阅MERGE 声明

【讨论】:

  • 太棒了,使用 IF EXISTS 语句,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-12
  • 2020-04-04
  • 2023-04-07
  • 2015-10-02
  • 2014-12-05
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
相关资源
最近更新 更多