[英]Update statement with IIF not upading
我有一個帶有訂單號、文章號和排名的簡單表格:
select * from tbl_temp_ranked
我只想用 rank=2 更新另一個表。 所以我使用以下更新語句
update hbs
set hbs.[2ND_NEXT_ORDER_Nr]=iif(ranked=2, ranked, null)
from TBL_HAKA_BASE_STAGE hbs
join tbl_temp_ranked tmp
on hbs.artikelnummer=tmp.artikelnummer
where hbs.Artikelnummer=115996
我的目標表(TBL_HAKA_BASE_STAGE)永遠不會更新。 它只在我寫的時候更新
iif(ranked=1, ranked, null)
只有在這種情況下,我的目標表才會更新! 寫ranked<>1
, ranked>1
, ranked!=1
, ranked=2
不會更新我的表格。 此SET
-Statement 中的 when -conditions 的case when
相同。 鑄造也沒有幫助!
我可以在我的WHERE
語句中添加這個條件,這有幫助,是的,但是這個簡短的 SQL 示例只是一個大語句中的一個非常短的代碼,所以這對我來說不是一個很好的解決方案。 這會讓我一遍又一遍地重復所有代碼。
這是兩個表的結構,也許有幫助
CREATE TABLE [dbo].[tbl_temp_ranked](
[auftragsnummer] [float] NULL,
[artikelnummer] [float] NULL,
[ranked] [bigint] NULL
)
CREATE TABLE [dbo].[TBL_HAKA_BASE_STAGE](
[Artikelnummer] [float] NULL,
[NEXT ORDER Nr] [float] NULL
)
它是 SQL 服務器 2017。
您在“排名”表中有重復項。 我想你想要一個left join
:
update hbs
set hbs.[2ND_NEXT_ORDER_Nr] = tmp.ranked
from TBL_HAKA_BASE_STAGE hbs left join
tbl_temp_ranked tmp
on hbs.artikelnummer = tmp.artikelnummer and tmp.ranked = 2
where hbs.Artikelnummer = 115996;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.