JDG*_*JDG 0 sql t-sql sql-server combinations sql-insert
我有一个带有 7 个 BIT 列(A、B、C、D、E、F 和 G)的空表。我希望用代表这些列的所有可能组合的行填充此表。理想情况下,不会有包含完全相同组合重复项的行。虽然我在这里显示了 7 列,但列数可能会更多,因此该解决方案应该是可扩展的。
填充后的表格片段如下所示:
理想情况下,这将基于 INSERT 语句,但我也对 T-SQL 循环解决方案持开放态度。我曾尝试使用 CROSS JOINS,但我有限的知识并没有让我走得很远。
任何帮助将不胜感激。
使用 CTE 及其CROSS JOIN自身 7 次,如下所示:
with bits as (select 0 as bit union select 1)
select
row_number() over(
order by a.bit, b.bit, c.bit, d.bit, e.bit, f.bit, g.bit) as id,
a.bit, b.bit, c.bit, d.bit, e.bit, f.bit, g.bit
from bits a
cross join bits b
cross join bits c
cross join bits d
cross join bits e
cross join bits f
cross join bits g
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |