L'exemple suivant utilise la syntaxe CTE de SQL Server. En l'état, le @ID
est sélectionné @Count
fois, tous les autres enregistrements sont sélectionnés une fois. Il serait assez facile de l'étendre à n'importe quel compte pour n'importe quel ID que vous aimez.
Setup
DECLARE @Table TABLE (ID INTEGER, Name VARCHAR(32))
DECLARE @Count INTEGER
DECLARE @ID INTEGER
SET @Count = 3
SET @ID = 1
INSERT INTO @Table
SELECT 1, 'SOF'
UNION ALL SELECT 2, 'USER'
instruction SQL
;WITH Multiple AS (
SELECT ID, Name, cnt = 1
FROM @Table
WHERE ID = @ID
UNION ALL
SELECT ID, Name, cnt = cnt + 1
FROM multiple
WHERE cnt < @Count
)
SELECT ID, Name
FROM Multiple
UNION ALL
SELECT ID, Name
FROM @Table
WHERE ID <> @ID
Si vous pouvez expliquer la logique derrière l'exigence, peut-être une solution sera plus facile à trouver. – Oded
Il est également facile de dupliquer des lignes du côté client. – Thilo
SELECT Badges. *, BadgeTypes. *, Pays. * FROM (Badges INNER JOIN BadgeTypes ON Badges.TypeID = BadgeTypes.TypeID) INNER JOIN Pays ON Badges.CountryID = Pays.CountryID order Par PName –