T-SQL 中结果集的幂集(所有组合)

2024-05-28

我需要一个 t-sql 代码来获取结果集的幂集。

输入示例:

ColumnName
1
2
3

Example Output(one columns as nvarchar) :
1
2
3
1,2
1,3
2,3
1,2,3

输出集可能包含重复值,例如 (1,3 vs 3,1)。


您可以使用这个并获得完整的电源设置。
好好享受。

--EXEC PowerSet 'A,B,C,D'
Create PROCEDURE PowerSet(@Members NVARCHAR(64))
As
Begin
    Declare @SubSet NVARCHAR(Max),
            @SubSetCount int,
            @Counter1 int,
            @Counter2 int,
            @ID int
    Create table #Members
    (
        ID int IDENTITY(1,1) PRIMARY KEY,
        Member NVARCHAR(50)
    )
    Create table #PowerSets
    (
        SubSet NVARCHAR(50)
    )
    -- Start Convert @Members To Table #Members
    Set @Members=@Members+','
    While @Members<>''
    Begin
        Insert Into #Members(Member) 
        Values(Left(@Members,CHARINDEX(',',@Members)-1))
        Set @Members=RIGHT(@Members,LEN(@Members)-CHARINDEX(',',@Members))
    End
    -- End Convert @Members To Table #Members
    -- Start Calculat PowerSet
    Set @SubSetCount=POWER(2,(Select Count(*) From #Members))
    Set @Counter1=0
    while @Counter1<@SubSetCount
    Begin
        Set @Counter2=@Counter1
        Set @ID=1
        Set @SubSet='{'
        While @Counter2>0
        Begin
            If CONVERT(char(1), @Counter2 % 2)=1
                 Set @SubSet=@SubSet+iif(@SubSet<>'{',',','')+(Select Member From #Members Where ID=@ID)
            Set @Counter2 = CONVERT(int, (@Counter2 / 2))
            Set @ID=@ID+1
        End
        Set @Counter1=@Counter1+1
        Insert into #PowerSets(SubSet) values(@SubSet+'}')
    End
    -- End Calculat PowerSet
    Select *
    From #PowerSets
    Order By Len(SubSet),SubSet
    Drop Table #PowerSets
    Drop Table #Members 
End
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

T-SQL 中结果集的幂集(所有组合) 的相关文章

  • SQL 英文查询发生了什么?

    SQL Server 2000 与 English Query 一起部署 当时我还年轻 对 SQL 还很陌生 所以我跳过了那一章 多年后的现在 又出现了制作一个可以理解简单用户问题的逻辑程序的想法 还有其他选择吗 英语查询现在在哪里 英文查
  • SQL proc计算7位和12位upc的校验位

    我不得不再次在互联网上搜索这段代码 所以我想我会把它放在这里 这样我下次就能更快地找到它 希望你也能更快地找到它 检查一下 下面的代码可以检查所有 GTIN 中的数字 EAN8 EAN13 EAN14 UPC A UPC E CREATE
  • SQL Server:如何从递归函数内执行更新?

    我有一个递归标量函数 需要根据它返回的值更新另一个表中的记录 但是函数中不允许使用 UPDATE 语句 如何从函数内更新表 不允许使用 UPDATE 语句 功能 这就是规则 函数不允许有任何数据更改的副作用 您必须使用存储过程来UPDATE
  • 当嵌入式键包含 SQL Server 上的标识列时,Hibernate 插入失败

    我正在尝试使用 hibernate 映射实体 但是使用 SQL Server 我无法继续 以下是详细信息 SQL Server 实体 CREATE TABLE dbo BOOK EMBEDDED row id bigint IDENTITY
  • SQL Server 之间的日期 LIKE

    请帮我如何插入LIKE 之间的日期 例子是 SELECT FROM table WHERE Date BETWEEN startDate AND endDate 所以在这段代码中我应该把LIKE这样数据就会出现 例如 如果我这样设置 SEL
  • SQL LIKE 运算符在应该显示任何结果时没有显示任何结果

    我有一个包含大量信息的车辆表 但其中一列是 MSSQL 表中的 所有者 但我使用时无法选择其中一个所有者LIKE但如果我可以使用 Silkeborg Distributionscenter 是所有者 是的 表和参数中都有一个双空格 所以参数
  • 使用 HTTP 访问数据库对象

    是否可以使用 HTTP 访问数据库对象SQL Server 2012它的完成方式是使用SQL Server 2000 我提到了下面的文章 但它是关于SQL Server 2000 使用 HTTP 访问数据库对象 http technet m
  • 更新语句错误:子查询返回超过 1 个值

    我正在尝试更新列中的所有记录 以便它们以 CD 开头 例如DCE206 将成为 CDE206 UPDATE table SET column REPLACE column1 DC CD WHERE column1 LIKE DC 我正在使用
  • 什么时候应该在 SQL Server 中使用分号?

    在检查 Web 上的一些代码和 SQL Server Management Studio 生成的脚本时 我注意到某些语句以分号结尾 那么我应该什么时候使用它呢 来自 SQLServerCentral Comarticle http www
  • 仅当列不为 NULL 时才连接列

    我有一个像这样的 SQL Server 表 PERSON NAME PHONE PHONE1 PHONE2 PHONE CONCAT Name1 12345 Null Null Null
  • MS SQL 2005 备份能否恢复到 MS SQL 2008 实例上?

    是否可以将 SQL Server 2005 数据库的备份恢复到 SQL Server 2008 的实例上 我需要重建一台服务器 因为它变得相当糟糕 所以我计划借此机会升级到 SQL 2008 并想知道我是否能够正常恢复我的备份 从 2005
  • GRANT EXECUTE 所需的权限

    我正在为需要能够创建和删除过程但也向其他用户授予执行权限的用户创建一个组 GRANT CREATE PROCEDURE TO xxx xxx GRANT ALTER ON SCHEMA dbo TO xxx xxx 但是 我需要向组授予什么
  • 查找每个客户组的最新帐户

    我有一个包含客户信息的表 每个客户都会分配一个客户 ID 他们的 SSN 他们在开设更多帐户时会保留该 ID 两个客户可能使用同一个帐户 每个客户都有自己的 ID 帐号不按日期排序 我想找到每个客户或客户组的最新帐户 如果两个客户曾经一起使
  • 在sql server中,sys.types中的user_type_id和system_type_id有什么区别

    sql server中sys types视图中的user type id和system type id有什么区别 我想将sys columns与sys types进行内连接以获取用户表中列的数据类型 但这两个视图都有两个字段user typ
  • 需要使用 SQL 查询中的值更新 XML 字符串中的多个节点

    我有一个 SQL 存储过程局部变量 DocList 声明 DocList XML 其中包含以下 XML 数据
  • 将记录与另一个表上的最新记录连接

    我正在尝试创建一个 SQL 视图 我如何从一个表中选择最新的记录 而其他记录保持原样 我需要从所有表中选择所有记录 这工作正常 但我需要仅按日期选择最新的提案 这是我遇到的问题 这是我到目前为止所拥有的 SELECT TOP 100 PER
  • 在 SQL Server 2014 中使用带有事务的存储过程的 TransactionScope

    我正在使用 C 和 ADO NetTransactionScope在 ASP Net 应用程序中运行事务 该事务应该在多个表中保存一些数据 然后向订阅者发送电子邮件 Question 是否有效使用TransactionScope 当它包含对
  • 更改 SQL Server 中所有表的所有列的排序规则

    我导入了一个包含一些数据的数据库 以便与另一个数据库进行比较 目标数据库有排序规则Latin1 General CI AS并且源数据库有SQL Latin1 General CP1 CI AS 我确实将源数据库的排序规则更改为Latin1
  • mssql 的 UUID 疯狂

    我的数据库条目有一个 UUID 及其值 使用 Microsoft SQL Server Management Studio 提取 CDF86F27 AFF4 2E47 BABB 2F46B079E98B 将其加载到我的 Scala 应用程序
  • 如何使用存储过程 SQL SERVER 2008 R2(mssql) 插入 PHP 数组值

    我有这个数组 REV Array 0 gt 240 1 gt 241 2 gt 242 3 gt 243 4 gt 249 我现在使用下面的代码进行插入 将每个数组的元素存储在带有 id userID Type 和 Date 的行中 if

随机推荐

  • 是否可以使用 Apache Tika 提取表信息?

    我正在寻找 pdf 和 MS Office 文档格式的解析器 以从文件中提取表格信息 当我看到 Apache Tika 时 正在考虑编写单独的实现 我能够从任何这些文件格式中提取全文 但我的要求是提取表格数据 我希望有 2 列采用键值格式
  • 我应该使用 Pylons 还是 Pyramid?

    我本来打算从 Django 迁移到 Pylons 但后来我遇到了 Pyramid 塔架和金字塔有什么区别 我读了一些文字塔书 http pylonsbook com 目前涵盖 Pylons 0 9 7 并且想知道它是否是 Pylons 和
  • 框架中有通用的交换方法吗?

    框架中是否存在这样的方法 public static void Swap
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 将 Azure Blob 与 Azure 网站结合使用

    我正在制作一个MVC Windows Azure涉及用户上传图像的网站 我想将图像存储在 blob 中 我搜索了教程 但大多数都涉及Webapps而不是 MVC 网站 我发现的唯一有用的教程是 http www codeproject co
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • qvariant 作为 qhash 中的键

    我想创建一个带有 QVariants 键的数据结构 它看起来像这样 QHash
  • 无法禁用 CALayer>>removeFromSuperlayer 的动画

    我希望从其超级层中删除 CALayer 而无需设置动画 这里发生的事情是图层动画到一个位置 效果很好 但是当动画停止时 执行此代码 将图层返回到其开始位置 并淡出 大概然后从超级层中删除 如何阻止它动画 removeFromSuperlay
  • UIBarButtonItem 按下后更改字体,在外观代理中指定

    我设置了UIBarButtonItem标题字体通过appearanceAppDelegate 中的代理 UIBarButtonItem appearance setTitleTextAttributes NSDictionary dicti
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 字符串中数字的连续相加

    我是一名正在学习 python 的新程序员 并且在如何完成此任务方面遇到了困难 所以本质上我有一个从文件导入的数字字符串需要读取 并且需要将第一个数字的总和添加到第二个数字并将其转换为正确的 ascii 字符 因此 例如 如果我正在读取字符
  • 如何在 CSS 中选择纯 HTML 文本?

    你们有人知道如何在 CSS 中选择纯 HTML 文本吗 我有以下结构 div p class caption caption1 p div class tabs div class moving bg div p class text ta
  • Java EE 6 的 Maven 与 Eclipse 项目 Facets

    我在 Eclipse 中使用以下原型创建了 Maven 项目 ejb javaee6 webapp javaee6 这些项目是在没有方面的情况下创建的 将此类 Maven 项目转换为多面形式有意义吗 哪些方面会有帮助 哪些方面可能会给 Ma
  • 套接字编程-listen() 和accept() 有什么区别?

    我一直在读本教程 http www cs rpi edu moorthy Courses os98 Pgms socket html了解套接字编程 看来listen and accept 系统调用都做同样的事情 即阻塞并等待客户端连接到使用
  • 作曲家和 Cygwin

    如果您尝试 全局 安装 Composer 则 Composer 无法在 Cygwin 中正确运行 将composer phar放入 usr local bin composer 然后尝试运行它会导致错误 Could not open inp
  • R 中 write.table 文件名中的变量

    请帮助我解决一个幼稚的问题 已经用谷歌搜索 并尝试了很多变体 但失败了 如何使用 R 中 write table 的文件名中的变量保存文件 脚本循环遍历 dir 中的文件 应用一些函数 然后将结果保存到具有相同名称但附加结尾的文件中 谢谢
  • 如何在 github 复合操作步骤中动态设置环境变量?

    我确实需要它作为一个环境变量 这是为了复合动作具体来说 在复合操作中 我尝试了许多不同的设置环境变量的方法 我发现做到这一点的唯一方法是使用env在步骤本身内 runs using composite steps name A step e
  • Nightmare.js 截图缓冲区长度 0

    我正在运行一个 night js 脚本 我试图在其中截取页面上多个元素的屏幕截图 The first元素被捕获得很好 但折叠下方的所有其他元素都以零长度捕获 我正在努力调试这个问题 任何帮助将非常感激 基本上这个脚本会遍历一个页面并选择al
  • T-SQL 中结果集的幂集(所有组合)

    我需要一个 t sql 代码来获取结果集的幂集 输入示例 ColumnName 1 2 3 Example Output one columns as nvarchar 1 2 3 1 2 1 3 2 3 1 2 3 输出集可能包含重复值