Я пытаюсь найти правильный SQL для следующей ситуации:Использование СЛУЧАЙ для конкретной ситуации - как
Предположил есть две таблицы:
TABLE A
ID int,
TEXT varchar(200)
TABLE B
ID int,
A_NO int,
B_NO int
поля с именем «ID» на обоих таблицы могут быть объединены для связывания таблиц.
Следующая SQL:
SELECT
A.ID,
B.A_NO,
B.B_NO
FROM
A
LEFT JOIN
B
ON A.ID = B.ID
ORDER BY A.ID, B.A_NO, B.B_NO
дает следующие результаты:
Теперь проблема. Требуется, чтобы в столбце B_NO значение = 1 для значения MIN столбца A_NO и значения = 0 для всех остальных строк с тем же значением A_NO. Приведенные ниже результаты ожидаются:
Пожалуйста, обратите внимание, что в этом примере, мы можем найти две строки для каждого значения B_NO но можно иметь более 2-х строк.
Я попытался воспроизвести эти результаты с помощью CASE, но без успеха. Спасибо за помощь, Bouzouki.
Это звучит как домашнее задание или учебное задание. Что вы пробовали? И какая база данных вы используете? –
Нет, не домашняя работа (но я хочу !!!). Я успешно получаю результаты, но я использую CASE с очень длинным подзапросом непосредственно в CASE. Даже тогда это было только для определенного идентификатора. Поскольку я действительно не специалист по SQL, у меня есть некоторые проблемы, чтобы увидеть, как я могу использовать условный оператор для заполнения поля B_NO. – Bouzouki
И я использую SQ Server 2008 R2. – Bouzouki