gpt4 book ai didi

sql-server - 单个查询中单个 SQL Server 表的条件 SELECT/JOIN?

转载 作者:行者123 更新时间:2023-12-01 11:03:47 25 4
gpt4 key购买 nike

即使在搜索之后,我也在努力寻找正确类型的条件选择语句。

我有一张用户表。有些是所有者,有些只是客人,例如:

TABLE A 
UserID | UserType | Directory | RegisteredToID | Name
1 | Guest | | 3 | Bob
2 | Guest | | 3 | Susan
3 | Owner | abc | (null) | Charles
4 | Guest | | 20 | Hugh
etc...

我正在尝试获取一个查询语句,该语句会生成 Bob、Susan 和 Charles 记录,并为每个记录显示目录名称,如下所示:

Name    | Directory
Bob | abc
Susan | abc
Charles | abc

也就是说,Bob和Susan是Charles的客人,但是Charles的记录里有我想要的目录名。希望我的问题有意义吗?

编辑: 我应该提到这个转折......我不知道目录名称,只是一个用户 ID(例如 1 代表 Bob),我正在尝试检索正确的目录名称以为每个用户关联,无论他们是否是访客。只有所有者记录才填写目录名称。

最佳答案

你需要自己加入表并决定用CASE选择哪个目录。

出乎我的意料(目前无法访问 SQL Server):

SELECT
t1.Name,
CASE WHEN t1.RegisteredToID is null
THEN t1.Directory
ELSE t2.Directory
END AS Directory
FROM
TableA AS t1
LEFT JOIN TableA AS t2
ON t1.RegisteredToID = t2.UserID

关于sql-server - 单个查询中单个 SQL Server 表的条件 SELECT/JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8141184/

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