gpt4 book ai didi

sql-server - 根据不同表的值加入

转载 作者:行者123 更新时间:2023-12-03 13:00:06 26 4
gpt4 key购买 nike

大家好,我有一个表 TableC,它保存来自两个不同表 TableATableB 的主键值。因为它们是来自两个表的主键,所以我最终可能会在那个 tableC 中得到重复项,所以当存储值时,我在主键前加上一个短文本以区分哪个值来自哪个表。

现在我想加入这个 tableCTableATableBtableA表B

TableC : 

ID_Column
1A
1B
2A

TableA:

ID_Column | Data
1 | data A 1
2 | data A 2
3 | data A 3

TableB:

ID_Column | Data
1 | data B 1
2 | data B 2
3 | data B 3

这是我一直在努力做的事情

select C.ID_Column, data
from tableC C
inner join tableA A
on A.ID_Column = left(C.ID_Column, 1)
inner join tableB B
on B.ID_Column = left(C.ID_Column, 1)

这将返回两个表的数据 我想从表 b 返回数据,当 ID_Column 最后有 B 并且想从 tableA< 返回数据ID_Column 最后有 A

提前谢谢你。

最佳答案

好吧,TableC 应该至少有 2 列,一列用于 id,一列用于标识它属于哪个表。无论如何,这可以通过这种方式完成:

SELECT  C.ID_Column,
ISNULL(A.Data,B.Data) Data
FROM TableC C
LEFT JOIN TableA A
ON LEFT(C.ID_Column,LEN(C.ID_Column)-1) = A.ID_Column
AND RIGHT(C.ID_Column,1) = 'A'
LEFT JOIN TableB B
ON LEFT(C.ID_Column,LEN(C.ID_Column)-1) = B.ID_Column
AND RIGHT(C.ID_Column,1) = 'B'

结果是:

╔══════════╦══════════╗
║ D_COLUMN ║ DATA ║
╠══════════╬══════════╣
║ 1A ║ data A 1 ║
║ 1B ║ data B 1 ║
║ 2A ║ data A 2 ║
╚══════════╩══════════╝

And here is a demo供您尝试。

关于sql-server - 根据不同表的值加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609555/

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