У меня есть запрос выбора SQL, который объединяет разные таблицы. В результате получается нечто вроде первой таблицы нижеMS SQL Server выбирает уникальные строки на основе значения столбца
p_id | colAprimaryEQsecondary | p_cat | colA | colB | colC
-----|------------------------|-------|------|------|------
001 | 1 | 1 | x | boo1 | flo1
001 | 1 | 2 | x | boo1 | flo1
002 | 0 | 1 | a | boo2 | flo2
002 | 0 | 2 | b | boo2 | flo2
003 | 1 | 1 | z | boo3 | flo3
003 | 1 | 2 | z | boo3 | flo3
p_id
представляет собой столбец внешнего ключа базы данных. Каждое значение ячейки одинаково в каждой строке с соответствующими p_id
s (p_cat
должно быть разным), за исключением случаев, когда столбец colA
имеет 2 разных значения. Колонка colAprimaryEQsecondary
содержит 0
или 1
. 1
Значение colA
-значение одинаково в строках с соответствующими p_id
.
Я хочу, чтобы получить результат, как этот:
p_id | colAprimaryEQsecondary | p_cat | colA | colB | colC
-----|------------------------|-------|------|------|------
001 | 1 | 2 | x | boo1 | flo1
002 | 0 | 1 | a | boo2 | flo2
002 | 0 | 2 | b | boo2 | flo2
003 | 1 | 2 | z | boo3 | flo3
Так что я хочу, чтобы создать запрос SQL, который выглядит на значении colAprimaryEQsecondary
. Если значение равно 0
Я хочу, чтобы обе строки, если значение равно 1
Я только хочу, чтобы получить строку с p_cat
равен 2.
Я пытался делать это с помощью различных методов, group by
, select distinct
, select distinct on
, case
, но Я не мог получить правильный запрос выбора. (К сожалению, я удалил выбранные утверждения, которые я пробовал).
Как бы это решить?
Отлично! Работает отлично. Вопрос, хотя, скажем, те, что создают оригинальные таблицы, были недостаточно осторожны при правильном заполнении «colAprimaryEQsecondary». Есть ли способ внутри запроса select, где я могу проверить 'colA' для различий, а если есть, то также выберите их? Должен ли я сделать это с двумя SQL-запросами внутри третьего предложения 'where'? –