Как условно выделить строки таблицы с помощью SQL - PullRequest
2 голосов
/ 17 января 2011

Как запросить эту таблицу, если я хочу выбрать строки с одинаковыми значениями CHANGE_KEY и SYSTEM_KEY = 1 и SERVER_KEY = 2, чтобы пояснить, что я не заинтересован в строках только с SYSTEM_KEY = 1, таких как первая строка в следующей таблице, потому что SERVER_KEY = 2 также необходимо, правильная таблица результатов будет содержать только две последние строки в следующей таблице, потому что CHANGE_KEY 4 имеет как SYSTEM_KEY = 1, так и SERVER_KEY = 2

   CHANGE_KEY  SYSTEM_KEY  SERVER_KEY  HARDWARE_KEY
    ----------- ----------- ----------- ------------
    1           1           NULL        NULL
    1           NULL        1           NULL
    1           NULL        NULL        1
    2           NULL        1           NULL
    3           NULL        1           NULL
    4           NULL        1           NULL
    5           NULL        1           NULL
    5           NULL        1           NULL
    4           NULL        2           NULL
    4           1           NULL        NULL

Ответы [ 6 ]

4 голосов
/ 17 января 2011

Если я что-то упустил, это так просто.

Select * From MyTable Where Change_Key = 4 AND (System_Key = 1 OR System_Key = 2)
1 голос
/ 17 января 2011
SELECT *
FROM mytable
WHERE CHANGE_KEY = 4
AND (SYSTEM_KEY = 1
OR SERVER_KEY = 2)

Изменить: Вы отредактировали вопрос, чтобы сказать, что последние две строки в таблице должны быть в наборе результатов.Однако AND не достигнет этого, я думаю, вы ищете ИЛИ, поэтому изменили мой ответ.

1 голос
/ 17 января 2011
SELECT * FROM
table 
WHERE CHANGE_KEY = 4
AND 
    (
     SYSTEM_KEY = 1
     OR
     SERVER_KEY = 2
    )

РЕДАКТИРОВАТЬ: я внес изменения, после вашего редактирования.

0 голосов
/ 17 января 2011
SELECT * FROM table_name WHERE change_key = 4 AND system_key = 1 AND system_key = 2
0 голосов
/ 17 января 2011

В MySql я бы написал что-то вроде этого:

SELECT * FROM table_name WHERE CHANGE_KEY=4 AND SYSTEM_KEY=1 AND SERVER_KEY=2;
0 голосов
/ 17 января 2011

SELECT * FROM your_table WHERE change_key = 4 AND system_key = 1 AND server_key = 2

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