0
我在sql server中制作了这个视图来合并多列2条记录的值。但是这个解决方案的问题在于你需要为table2中的每一列创建一个concat。我想知道是否可以对table2的列号(table2中的列称为1,2,3,4,5 ....)使用循环和动态变量来执行concat部分。SQL Server循环查询
SELECT
dbo.table1.lot_id AS lot,
dbo.table1.hybird_id AS hybrid,
concat(
LEFT((SELECT dbo.table2.[1] FROM dbo.table2 WHERE dbo.table2.parentals_id = dbo.table1.parental_male_id AND dbo.table2.lot_id = dbo.table1.lot_id) , 1),
LEFT((SELECT dbo.table2.[1] FROM dbo.table2 WHERE dbo.table2.parentals_id = dbo.table1.parental_female_id AND dbo.table2.lot_id = dbo.table1.lot_id) , 1)
) AS '1',
--above concat x31 times more
FROM dbo.table2
INNER JOIN dbo.table1 ON dbo.table2.lot_id = dbo.table1.lot_id
GROUP BY dbo.table1.lot_id, dbo.table1.hybird_id,
dbo.table1.parental_male_id,
dbo.table1.parental_female_id
我尝试了几件事,但没有任何工作,任何想法?
MySQL不能也SQL-Server中。请标记正确的rdbms。你可以用动态SQL做到这一点。但是,大红旗在这里就是为什么你需要连接表中的所有列来开始。 –
如果这将是一个视图,你只需要输入一次。这可能需要的时间少于尝试聪明。 –
为什么你需要子查询开始?你可以发布样本数据和预期产出吗? – scsimon