【发布时间】:2020-02-18 23:56:47
【问题描述】:
我正在尝试检查属于 View "IS NULL" 的列,它适用于 select 语句:
SELECT TOP (1000) [Invoice_Number]
,[Invoice_Date]
,[Invoice_Amount]
,[Invoice_CoCd]
,[Invoice_vendor]
,[Invoice_PBK]
,[Invoice_DType]
,[Invoice_DueDate]
,[Invoice_ClgDate] FROM [dbo].[viewABC] where Invoice_PBK IS NULL
现在我有一个更新语句,我需要根据 VIEW 中的 NULL 更新表中的列:
UPDATE cis
SET
cis.InvoiceStatus =
(
CASE
WHEN RTRIM(LTRIM(imd.[Invoice_PBK])) IS NULL THEN
'HELLO'
WHEN RTRIM(LTRIM(imd.Invoice_DType)) = 'RD'
THEN '233' END)
FROM
[dbo.[tblABC] cis,
[dbo].[viewABC] imd
WHERE [condition logic]
这些与 where 条件无关,CASE 表达式中的 IS NULL 会导致问题。
有人可以帮忙吗?
【问题讨论】:
-
您的
CASE表达式 中似乎缺少END。 T-SQL 中没有Case语句。 -
不更新了吗?您是否尝试先将更新语句作为选择语句运行?
-
@Larnu:我已经更正了
-
你有什么错误?
-
@TinyHaitian :我正在从 c# 控制台应用程序调用此更新语句(在存储过程中)
标签: sql sql-server sql-update case sql-view