Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Anzahl der leeren Zeilen in SQL einfügen

Definieren Sie einfach eine zweite Abfrage, die die leeren Zeilen erstellt, die Sie benötigen, und vereinigen Sie sie.

SELECT ROW_NUMBER() OVER(PARTITION BY family_id ORDER BY family_id) AS rowNum,
    full_name as name,
    family_id
FROM tbl_person

UNION ALL

SELECT n.N AS rowNum,
    NULL AS name,
    p.family_id
FROM (SELECT family_id, COUNT(*) family_count FROM tbl_person group by family_id) p
INNER JOIN (
    SELECT 1 AS N
    UNION ALL SELECT 2
    UNION ALL SELECT 3
    UNION ALL SELECT 4
    ) n
    ON n.n > p.family_count
ORDER BY family_id,
    rowNum,
    name;