gpt4 book ai didi

sql - 带有 CASE 语句的内部连接在 SQL SERVER 中不起作用

转载 作者:行者123 更新时间:2023-12-01 10:36:00 26 4
gpt4 key购买 nike

我有两个,帐户代码如下,

table 1:

account

50000
50006
50015
50105
50150
50155
50165

table 2:

Account

50000
50010
50140
50105
50150
50155
50165

我需要加入这两个。如果 table-1 的任何帐户代码与 table-2 不匹配,那么我已将 table-1 帐户代码隐式更改为 table-2 帐户代码。

我做了如下的事情,

 SELECT T1.Account, T2.Account
FROM table1 t1
INNER JOIN table2 t2
on (t2.account = CASE t1 .account
WHEN 50015 THEN 50010
WHEN 50006 THEN 50140
ELSE t1 .account
END )

但我只得到匹配的代码作为输出,

account Account
50000 50000
50105 50105
50150 50150
50155 50155
50165 50165

我没有得到不匹配的帐户代码,即 (50006 和 50015)。谁能帮我找出这里出了什么问题?

我的预期输出是

account Account
50000 50000
50006 50140
50015 50010
50105 50105
50150 50150
50155 50155
50165 50165

感谢帮助

最佳答案

使用 CASE 然后使用 DISTINCT 数据,这将为您提供通用解决方案

-- table1
declare @table1 table
(account bigint)

insert into @table1 values (50000)
insert into @table1 values (50006)
insert into @table1 values (50015)
insert into @table1 values (50105)
insert into @table1 values (50150)
insert into @table1 values (50155)
insert into @table1 values (50165)

-- table2
declare @table2 table
(account bigint)

insert into @table2 values (50000)
insert into @table2 values (50010)
insert into @table2 values (50140)
insert into @table2 values (50105)
insert into @table2 values (50150)
insert into @table2 values (50155)
insert into @table2 values (50165)


-- QUERY
select distinct t1.account as Account1,
Account2 = case
when t1.account = t2.account then t2.account else t1.account
end
from @table1 t1, @table2 t2

结果

Account1    Account2
50000 50000
50006 50006
50015 50015
50105 50105
50150 50150
50155 50155
50165 50165
评论后

编辑 - 这是我们要求的一部分。我需要更新50140中50006账号对应的金额等等...

select distinct t1.account as Account1, 
Account2 = case
when t1.account = 50006 then 50140
when t1.account = 50015 then 50010
else t1.account end
from @table1 t1 , @table2 t2

结果

Account1    Account2
50000 50000
50006 50140
50015 50010
50105 50105
50150 50150
50155 50155
50165 50165

关于sql - 带有 CASE 语句的内部连接在 SQL SERVER 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35285013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com