在 SQL 中为每个 parentID 创建一串 childID,同时从聚合中排除当前 childID 的最佳方法是什么

问题描述 投票:0回答:0

数据

DROP TABLE IF EXISTS cats;

CREATE TABLE cats
(
    litterID int NOT NULL,
    catID int NOT null,  --row uniquifier
    catFirst varchar(30),
    catLast varchar(30),
    catSize int
);

INSERT INTO cats (litterID,catID,catFirst,catLast,catSize)
VALUES
('20020314','20262607','Scat','Meow','8'),
('20020314','20264036','Paws','Furbs','4'),
('20020314','20264267','Alexander','Meow','2');

问题

为每个 catID 创建一串它们的同窝仔(这是困难的部分......从成员集中删除它们)

预期产出

catID     catFirst     litterID  littermates
--------  ---------    --------  -----------------------------------------------
20262607  Scat         20020314  "Paws Furbs Size 4; Alexander Meow Size 2"
20264036  Paws         20020314  "Scat Meow Size 8; Alexander Meow Size 2"
20264267  Alexander    20020314  "Scat Meow Size 8; Paws Furbs Size 4"

我试过 EXCEPT 查询、CURSOR、WHILE。我认为解决方案在于交叉应用。

sql sql-server string-aggregation
© www.soinside.com 2019 - 2024. All rights reserved.