使用CASE WHEN语句在SQL中进行更新

凯·弗朗索瓦(Kei Francois)

我想知道,是否可以在Case语句中对表进行更新?还是有某种方法可以做到这一点?我有一个按钮可以拉报告(该按钮将调用存储过程,并获取列及其驻留列的列表)。

我基本上想更新表IF,并且只有IF,该DateClosed列为NULL并且ClosedBy为null(即,到达结束日期,因此广告系列已关闭)。

我通常通过检查开始日期和结束日期来确定广告系列是否已关闭。即,当EndDate <GetDate()然后“关闭”。显然可以正确显示,但是我的数据库显示为空,因为没有更新。

这是我的存储过程:

ALTER PROCEDURE [dbo].[sp_CampaignStats]
    @from DATETIME,
    @to DATETIME
AS
    SELECT 
        CampaignName AS 'CAMPAIGN NAME',
        CampaignDescription AS 'CAMPAIGN DESCRIPTION',
        CASE
           WHEN EndDate >= GETDATE() AND StartDate <= GETDATE() THEN 'Active' 
           WHEN StartDate >= GETDATE() THEN 'Pending'
           WHEN CampaignStatus = 4 THEN 'Archived'
           ELSE 'Closed'
        END as 'CurrentStatus',
        CONVERT(VARCHAR(11), StartDate, 106) + ' - ' + CONVERT(VARCHAR(11), EndDate, 106) AS 'CAMPAIGN DATES',
        Discount AS 'DISCOUNT',
        [Target] AS 'TARGET',
        Uptake AS 'UPTAKE',
        tc.DateAdded as 'DATE ADDED',
        U.FirstName + ' ' + u.LastName As 'ADDED BY',
        CASE 
           WHEN CloseBy IS NULL AND EndDate < GETDATE() AND CloseBy = Null THEN 'System'
           WHEN CampaignStatus = 4 THEN 'Archived'
           WHEN CloseBy IS not Null THEN UU.FirstName + ' ' +  uu.LastName
           ELSE 'Not Closed'
        END AS 'CLOSED BY',
        DateClosed AS 'DATE CLOSED'
    FROM 
        Tbl_Campaign tc
    LEFT JOIN 
        tbl_User U ON Tc.AddedBy = U.UserId 
    LEFT JOIN 
        Tbl_User UU ON TC.CloseBy = UU.UserId
    WHERE 
       (startDate >= @from OR enddate <= @to)
       AND CampaignStatus IN (1, 2, 3, 4)
marc_s

因此,您想发生这种情况之前更新表格SELECT吗?

尝试这样的事情:

UPDATE dbo.Tbl_Campaign
SET  -- what do you want to update to what value here????
WHERE 
    DateClosed IS NULL
    AND ClosedBy IS NULL

还是您到底想做什么?您仍然不清楚和不清楚您的问题-您没有提到满足该条件的WHICH表中的WHAT列,您希望将其更新为WHAT值.....

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CASE语句进行SQL更新

来自分类Dev

在SQL中的CASE语句中进行澄清

来自分类Dev

如何使用 CASE 语句在 MySQL 中进行计数

来自分类Dev

使用case语句的条件进行SQL搜索

来自分类Dev

Pyspark SQL:使用 case when 语句

来自分类Dev

使用准备好的语句从SQL表中进行SELECT *

来自分类Dev

使用sql语句在批处理文件中进行for循环

来自分类Dev

在SQL Server中使用select和case进行更新语句

来自分类Dev

在INNER联接上使用CASE语句进行更新

来自分类Dev

使用 case 语句的 SQL 连接

来自分类Dev

使用 case when 语句覆盖/更新 proc sql 中的 af 变量值

来自分类Dev

SQL Server:使用Case语句进行变量声明

来自分类Dev

使用 SQL CASE 语句比较日期并进行乘法运算

来自分类Dev

在SQL Server中使用case语句更新多列

来自分类Dev

在SQL中使用case语句更新多列

来自分类Dev

如何在 Postgres 中使用 CASE 或 IF 语句从不同的表中进行选择?

来自分类Dev

使用多个CASE语句

来自分类Dev

If 语句不使用“CASE”

来自分类Dev

PostgreSQL使用CASE语句进行慢速JOIN

来自分类Dev

通过使用多个case语句进行分区

来自分类Dev

使用CASE语句更新SELECT查询

来自分类Dev

使用多个CASE更新

来自分类Dev

如何在case语句中进行子查询?

来自分类Dev

使用 sqlparse 解析 CASE WHEN 语句

来自分类Dev

使用Insert和Case的Sql语句

来自分类Dev

使用SQL Case语句获取转换错误

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

尝试在SQL Server中使用CASE语句

来自分类Dev

使用 LISTAGG 和 CASE 语句的 SQL 查询