使用 IF 更新语句不更新
Update statement with IIF not upading
我有一个简单的 table,其中包含订单号、商品编号和排名:
select * from tbl_temp_ranked
我只想更新另一个 table,等级 = 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
我的目标-table (TBL_HAKA_BASE_STAGE) 永远不会更新。它只在我写
时更新
iif(ranked=1, ranked, null)
只有在那种情况下,我的目标 table 才会更新!写入 ranked<>1
、ranked>1
、ranked!=1
、ranked=2
不会更新我的 table。 case when
-条件在这个SET
-语句中相同。铸造也没有帮助!
我可以在我的 WHERE
-语句中添加这个条件,这有帮助,是的,但是这个简短的 SQL-示例只是一个大语句中的一个非常短的代码,所以这不是对我来说是一个很好的解决方案。这会让我一遍又一遍地重复所有代码。
这是两个 table 的结构,也许对
有帮助
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。
您在“排名”中有重复项table。我想你想要 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;
我有一个简单的 table,其中包含订单号、商品编号和排名:
select * from tbl_temp_ranked
我只想更新另一个 table,等级 = 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
我的目标-table (TBL_HAKA_BASE_STAGE) 永远不会更新。它只在我写
时更新iif(ranked=1, ranked, null)
只有在那种情况下,我的目标 table 才会更新!写入 ranked<>1
、ranked>1
、ranked!=1
、ranked=2
不会更新我的 table。 case when
-条件在这个SET
-语句中相同。铸造也没有帮助!
我可以在我的 WHERE
-语句中添加这个条件,这有帮助,是的,但是这个简短的 SQL-示例只是一个大语句中的一个非常短的代码,所以这不是对我来说是一个很好的解决方案。这会让我一遍又一遍地重复所有代码。
这是两个 table 的结构,也许对
有帮助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。
您在“排名”中有重复项table。我想你想要 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;