Как сделать выбор с «повторным» условием в SQL? - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть следующий выбор, который необходимо сделать:

выберите top 1 a, b, c, d из продуктов, где
CodDep = 10 или
CodDep = 11 или
CodDep = 12 или CodDep = 13 или
CodDep = 26 или
CodDep = 27 или CodDep = 32 или
CodDep = 34 или
CodDep = 248442 или
CodDep = 259741by LastUpdate

Есть ли простой способ сделать это без всего этого повторения?

Ответы [ 3 ]

5 голосов
/ 21 декабря 2011
select top 1 
  a, b, c, d 
from 
  Products 
where
  CodDep IN (10,12,12,13,26,27,32,34,248442,259741)
order by 
  LastUpdate
0 голосов
/ 21 декабря 2011

SQL имеет только одну структуру данных: таблицу.Поместите значения в таблицу и semi join к этой таблице, например

WITH Params
     AS 
     (
      SELECT * 
        FROM (
              VALUES (10), (11), (12), (13),
                     (26), (27), (32), (34), 
                     (248442), (259741)
             ) AS T (CodDep)
     )
SELECT TOP 1 a, b, c, d 
  FROM Products 
 WHERE CodDep IN (SELECT CodDep FROM Params)
 ORDER 
    BY LastUpdate;
0 голосов
/ 21 декабря 2011

Попробуйте этот запрос:

SELECT TOP 1 a, b, c, d FROM Products WHERE
CodDep IN (10,11,12,13,26,27,32,34,248442,259741) ORDER BY LastUpdate 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...