none
UNION и ORDER BY NEWID() RRS feed

  • Вопрос

  • Здравствуйте! Можно ли использовать  UNION с ORDER BY NEWID()

    SELECT TOP(1) * FROM [Т1] ORDER BY NEWID() UNION SELECT TOP(1) * FROM [Т2] ORDER BY NEWID()

    ошибка "Incorrect syntax near the keyword 'UNION'."

    6 февраля 2013 г. 7:20

Ответы

  • у меня вот такой запрос выполняется в SQL server 2008 r2

    Select name from (Select top(1) 'name from t1' as Name from GRS_28 order by newid()) as t1
    
    union
    
    select name from (select top(1) 'name from t2' as Name from GRS_28 order by newid()) as t2

    на какой базе вы пытаетесь это сделать?

    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 10:33
    • Снята пометка об ответе Program-s.g 6 февраля 2013 г. 11:04
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:07
    • Снята пометка об ответе Program-s.g 6 февраля 2013 г. 11:10
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:31
    6 февраля 2013 г. 10:13
  • добавить поле и ставить для т1 туда 1 а для т2 2 и при привязки данных сортировать по этому полю
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:31
    6 февраля 2013 г. 11:15

Все ответы

  • Использование Union предполагает что у вас наборы данных имеют одинаковые структуры, так как у вас выборка идет из разных таблиц то и наборы будут разные, и работать это не будет.

    попробуйте так:

    Select top(1) 'name from t1' as Name from [T1] order by newid()

    union select top(1) 'name from t2' as Name from [t2] order by newid()

    6 февраля 2013 г. 9:04
  • Ваш способ тоже не работает. Таблицы имеют одинаковые структуры. Дело в том, что без ORDER BY NEWID() работает, если добавить ORDER BY NEWID() получаю ошибку.
    • Изменено Program-s.g 6 февраля 2013 г. 9:52
    6 февраля 2013 г. 9:37
  • попробуйте так

    Select name from (Select top(1) 'name from t1' as Name from [T1] order by newid())
    
    union
    
    select name from (select top(1) 'name from t2' as Name from [t2] order by newid())


    6 февраля 2013 г. 9:41
  • Не работает, опять ошибка. Incorrect syntax near the keyword 'union'.
    6 февраля 2013 г. 9:57
  • у меня вот такой запрос выполняется в SQL server 2008 r2

    Select name from (Select top(1) 'name from t1' as Name from GRS_28 order by newid()) as t1
    
    union
    
    select name from (select top(1) 'name from t2' as Name from GRS_28 order by newid()) as t2

    на какой базе вы пытаетесь это сделать?

    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 10:33
    • Снята пометка об ответе Program-s.g 6 февраля 2013 г. 11:04
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:07
    • Снята пометка об ответе Program-s.g 6 февраля 2013 г. 11:10
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:31
    6 февраля 2013 г. 10:13
  • Вот так уже работает,спасибо
    6 февраля 2013 г. 10:33
  • Еще один вопрос, а как сохранить "очередь "данных уже для  dropdownlist? то есть сначала данные из Т1. потом Т2. их очередь постоянно меняется.
    6 февраля 2013 г. 11:11
  • добавить поле и ставить для т1 туда 1 а для т2 2 и при привязки данных сортировать по этому полю
    • Помечено в качестве ответа Program-s.g 6 февраля 2013 г. 11:31
    6 февраля 2013 г. 11:15