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