SQL SELECT Query - PullRequest
       4

SQL SELECT Query

0 голосов
/ 23 августа 2011

У меня есть очень простая таблица с бизнесом и столбцом DisplayBiz = varchar(1), то есть Y или N ... Я хочу, чтобы скрипт извлекал данные из базы данных сначала все "Y", а затем все " N "в общей сложности десять, и я хочу, чтобы они были заказаны по фирменному наименованию ..

Есть ли способ сделать это? Я предполагаю, что это будет что-то вроде этого:

SELECT TOP 10 MemberID,
BizName
ORDER BY BizType

но это не учитывает столбец DisplayBiz

Есть идеи?

Большое спасибо ..!

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Вы можете добавить более одного столбца в предложении ORDER BY:

-- ...
ORDER BY DisplayBiz DESC, BizType

Который будет помещать сначала Y строк, а затем N строк.

2 голосов
/ 23 августа 2011

Это получит первые 10 алфавитов BizNames, которые имеют «Y» для DisplayBiz.Если число меньше 10, оно начнется снова с A для тех, у кого 'N' ...

SELECT TOP 10 MemberID, BizName, DisplayBiz
    FROM dbo.table
    ORDER BY 
       CASE WHEN DisplayBiz = 'Y' THEN 1 ELSE 2 END,
       BizName;

Вы также можете использовать:

ORDER BY 
    DisplayBiz DESC,
    BizName;

Но я предпочитаю1007 * - хотя больше кода, вы не пользуетесь английским правописанием Y / N.Кажется более уместным быть явным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...