2016-07-15 5 views
0

Я хочу, чтобы выбрать 24 случайные строки из всей таблицы Admin_Pic_Lib, но этот запрос дает ошибку синтаксиса,Выберите случайные строки из таблицы

SELECT top 24 CAST([Pictures] AS varbinary(Max)) FROM Admin_Pic_Lib ORDER BY NEWID() 

UNION ALL 

    SELECT CAST([Pictures] AS varbinary(Max)) FROM User_images WHERE UserName ='ahmed' 

Когда я подрезки ORDER BY NEWID() это выбрать только верхние 24 строк.

+2

AFAIK 'TOP' применяется _after_' ORDER BY' происходит. Таким образом, верхняя половина вашего запроса UNION должна уже возвращать 24 случайных строки. Можете ли вы рассказать о том, что вы видите и почему думаете, что есть проблема? –

+0

Также помечайте соответствующие СУБД, которые вы используете – TheGameiswar

ответ

0

Пожалуйста, попробуйте приведенный ниже код.

SELECT Pictures 
FROM 
    (SELECT TOP 24 CAST([Pictures] AS varbinary(Max)) AS Pictures 
    FROM Admin_Pic_Lib ORDER BY NEWID()) AS X 

UNION ALL 

    SELECT CAST([Pictures] AS varbinary(Max)) AS Pictures 
    FROM User_images 
    WHERE UserName ='ahmed'