gpt4 book ai didi

sql-server - 是否可以编写包含一对多关系的数据库 View ?

转载 作者:太空狗 更新时间:2023-10-30 01:59:52 27 4
gpt4 key购买 nike

所以我不一定说如果可能的话这甚至是个好主意,因为 View 的架构会非常不稳定,但是有没有什么方法可以在单个 View 中表示多对多关系?

例如,假设我有一个客户可以在数据库中拥有任意数量的地址。有没有什么方法可以列出每个地址的每一列,也许用数字作为别名的一部分(例如,客户 ID、姓名、Address_Street_1、Address_Street_2 等列)?

谢谢!

最佳答案

不尽然 - 您确实在做一个动态枢轴。可以使用 OPENROWSET 来获取动态生成的查询,但是这是否可取,如果没有看到更多关于业务案例,很难说。

第一个make a stored proc which does the dynamic pivot就像我在 StackExchange Data Explorer 上所做的那样。

基本上,您生成构建列列表的动态 SQL。这只能在存储过程中真正完成。这适用于应用程序调用。

但是如果您想在许多不同的连接或临时查询中重复使用它怎么办?

然后,看看this article : "使用 SQL Servers OPENROWSET 打破规则"

您现在可以通过循环回服务器调用存储过程,然后将结果放入行集中 - 这可以在 View 中!

已故的 Ken Henderson 在 his excellent book 中有一些很好的例子:“SQL Server 存储过程、XML 和 HTML 大师指南”(您一定会喜欢封面上的小“Covers .NET!”,它很好地捕捉了 2002 年的时代精神!)。

他只介绍了环回部分(带有 View 和用户定义的函数),不太冗长的 PIVOT 语法直到 2005 年才可用,但是 PIVOT 也可以使用 CASE 语句生成,如 a characteristic function .

显然,这项技术有一些注意事项(我什至不能在我们的生产服务器上执行此操作)。

关于sql-server - 是否可以编写包含一对多关系的数据库 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055137/

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