Мне нужен запрос на выбор. *
Среда: SQL DBA -SQL SERVER 2005 или новее
Пример:
В этом примере таблицы, если я выберу топ-20, нет повторяющихся записейдолжен прийти, и следующая запись должна быть в 20 записях.
Пример:
123456 не должен повторяться в 20 записях, и если 18-е дублировано, вместо 18-го должна появиться 19-я запись и в 19-м- 20-е должно наступить, 20-е - 21-е должно прийти.
Не беспокойтесь о Asc или Desc для строк.
Таблица поиска до
Id Name
123456 hello
123456 hello
123654 hi
123655 yes
Таблица поиска после
Id Name
123456 hello
123654 hi
123655 yes
Мой стол:
CREATE TABLE [dbo].[test](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ContestId] [int] NOT NULL,
[PrizeId] [int] NOT NULL,
[ContestParticipantId] [int] NOT NULL,
[SubsidiaryAnswer] [varchar](256) NOT NULL,
[SubsidiaryDifference] [bigint] NOT NULL,
[AttemptTime] [datetime] NOT NULL,
[ParticipantName] [varchar](250) NOT NULL,
[IsSubscribed] [bit] NOT NULL,
[IsNewlyRegistered] [bit] NOT NULL,
[IsWinner] [bit] NOT NULL,
[IsWinnerConfirmed] [bit] NOT NULL,
[IsWinnerExcluded] [bit] NOT NULL) ON [PRIMARY]
Мой вопрос: из этого выбора нам действительно нужны первые 20, но уникальные.
SELECT TOP 20 * FROM test order by SubsidiaryDifference
Когда мы выполняем вышеуказанный запрос, у нас в настоящее время есть несколько двойников.В случае, если есть двойной, нам нужно взять их только 1 раз и взять следующий
Кто-нибудь знает эту проблему?
Заранее спасибо:)