gpt4 book ai didi

c# - SQL Server 查询 : Get a List of Columns Which Don't Exist in Another Table's Field

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:16 25 4
gpt4 key购买 nike

我需要从 SPLANNING_ROOMDATA2 表中选择所有名称列,这些名称不应存在于另一个表中以逗号分隔的列名称列表中。这是我在 C# ASP.NET 应用程序中的查询。我的查询生成类似“Where 附近的语法错误”的错误。

  SqlCommand cmd = new SqlCommand("select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='Splanning_RoomData2' where COLUMN_NAME NOT IN (SELECT ATTRIBUTENAME FROM SPLANNING_RESTRICTED_ATTRIBUTES)", con);//get only column names

请注意,如果我删除第二个 Where 子句,那么我会得到一个列列表,但这不是我想要的。我进行了一些搜索,但没有一个能满足我的需求。

***编辑:截至目前,所有答案均无效。我将尝试更改 splanning_restricted_attributes 表以允许每行一个受限制的属性——而不是逗号分隔的属性。谢谢大家。 **

最佳答案

您不应将列表存储为逗号分隔值。它们应该在一个单独的表中,称为联结表,每列和表一行。

不过,有时您会受困于这种结构。这是获取所需内容的一种方法:

select c.COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS c LEFT JOIN
SPLANNING_RESTRICTED_ATTRIBUTES ra
ON ',' + lower(ra.ATTRIBUTENAME) + ',' LIKE '%,' + lower(c.column_name) + ',%'
where TABLE_NAME = 'Splanning_RoomData2' and ra.ATTRIBUTENAME is null;

关于c# - SQL Server 查询 : Get a List of Columns Which Don't Exist in Another Table's Field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985853/

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