Учитывая тот факт, что у вас есть три строки с одинаковыми DriverMobNo
- какой из этих трех вы хотите при выполнении SELECT
?? Произвольный? Самый последний? Самый старый ??
Вы, конечно, можете сделать
SELECT DISTINCT DriverMobNo FROM dbo.Drivers WHERE IsDeleted = 0
и получите эти различные DriverMobNo
значения - но если вы хотите, чтобы все столбцы были в вашем SELECT, вам нужно более точно указать, какую из трех строк с DriverMobNo = 9566643707
вы хотите получить.
ОБНОВЛЕНИЕ: Хорошо, вы хотите самый старый - один из способов сделать это - использовать CTE (Common Table Expression):
WITH Drivers AS
(
SELECT
DriverId, DriverName, DriverMobNo, CreatedDate,
ROW_NUMBER() OVER (PARTITION BY DriverMobNo ORDER BY CreatedDate) 'RowNo'
FROM dbo.Drivers
WHERE IsDeleted = 0
)
SELECT DriverId, DriverName, DriverMobNo, CreatedDate
FROM Drivers
WHERE RowNo = 1
Это должно «разделить» ваши данные на DriverMobNo
и начать подсчет, упорядочить по дате создания, поэтому запись RowNo = 1 всегда будет самой старой для каждого DriverMobNo
.