sql >> Base de Datos >  >> RDS >> Sqlserver

Devuelve todas las combinaciones posibles de valores en columnas en SQL

Suponiendo al menos SQL 2005 para el CTE:

;with cteAllColumns as (
    select col1 as col
        from YourTable
    union
    select col2 as col
        from YourTable
)
select c1.col, c2.col 
    from cteAllColumns c1 
        cross join cteAllColumns c2 
    where c1.col < c2.col
    order by c1.col, c2.col