2015-08-19 4 views
-2

У меня есть таблица с номером столбцов, имя, адрес & контактов, я хочу, чтобы отобразить уникальный в ряд, как говорятКак выбрать уникальные строки записи в SQL

number , name, address, contact 
1 , joy, Elgin , Obere Str. 57 
2 , saf, Berlin ,Obere Str. 57 
3 , andy, Berlin, Avda. de la Constitución 2222 
3 , rin, Berlin ,Mataderos 2312 

Показать, как это

number , name, address, contact 
1 , joy, Elgin , Obere Str. 57 
2 , saf, Berlin ,Obere Str. 57 
3 , andy, Berlin, Avda. de la Constitución 2222 

Как?

+2

Поместите свой вопрос в базу данных, которую вы используете. –

ответ

4

Большинство баз данных поддерживают функцию ANSI-стандарта row_number(). Вы можете сделать это как:

select t.* 
from (select t.*, 
      row_number() over (partition by number order by number) as seqnum 
     from table t 
    ) t 
where seqnum = 1; 

Примечание: это выбирает произвольную строку из соответствующих чисел, которые, кажется, полностью согласуется с формулировкой вопроса.

+0

Почему это обязательно выбирает «rin» над «andy»? Я не думаю, что в вопросе достаточно информации, чтобы действительно дать ответ, а «порядок по номеру» потенциально непреднамеренно вводит в заблуждение? –

+0

@ic. , , , Вопрос довольно ясен: «Я хочу отображать уникальные строки, например, сказать ...». Данные примера являются частью «like». Я не вижу спецификации, что желаемая строка - это нечто иное, чем произвольное. –

+0

О, безусловно, согласился, я просто беспокоюсь о следующем человеке, чтобы прийти и найти этот вопрос из поисковой системы. Но, может быть, я слишком много думал :) –

0
select min(number),name,address, contact from tableName where status='p' group by number 
+0

Я также использовал этот запрос, но все записи отображаются – bharat

+0

select min (number), name, address, contact from tableName, где status = 'p' группа по номеру –

+0

Я тоже использовал этот, но тот же – bharat