2017-01-20 6 views
0

Мой запрос построен на нескольких операциях case, когда я пытаюсь добавить случайный образец из примерно 10 записей в этот микс.Случай, когда Random.Value

Я думаю, я ищу что-то вроде:

Case when (select dbms_random.random DOC_NUM (x10) then 'Random' else '-' end rand_doc 

Если что-то подобное возможно в случае, когда?

Нет конкретных критериев, которые я хочу найти, но если это помогает в случае, когда утверждение, то я могу добавить 'doc_num Like'% 5% '', например, поскольку это все равно даст мне приличную случайную выборку (как doc_num составляет 8 номеров длинные)

Выходной пример:

12345678 'random' 
12346789 '-' 
12348790 '-' 
21212120 '-' 
65656565 'random' 
+0

Tag ваш вопрос с базой данных, которую вы используете. Также помогут образцы данных и желаемые результаты. –

+0

Вы хотите * добавить * случайные записи к вашему результату или хотите взять произвольную выборку из 10 записей из них? –

+0

Я хочу отметить 10 из них «случайным», поэтому возьмите случайный образец из 10 –

ответ

4

вы можете сделать что-то вроде этого:

select t.*, 
     (case when row_number() over (order by dbms_random.random) <= 10 
      then 'random' 
      else '-' 
     end) as rand_doc 
from t; 
+0

. Именно это я и получил, спасибо за быстрый ответ Гордона. –

Смежные вопросы