2014-10-30 3 views
0

У меня есть таблица, где столбец и данные, как этотПолучить вывод на основе значений одного столбца

| ID | Prop | Value | String  | 
| 1 | C  | 1  | NULL  | 
| 1 | Notes | NULL | TestNote | 
| 1 | E  | 59  | NULL  | 
| 1 | Notes | NULL | Note2  | 
| 2 | C  | 1  | NULL  | 

То, что я пытаюсь сделать, это получить как строки Notes и C на колонке Prop

Я попытался

SELECT * FROM table WHERE Prop IN ("C", "Notes") 

выход этого

| ID | Prop | Value | String  | 
| 1 | C  | 1  | NULL  | 
| 2 | C  | 1  | NULL  | 

Он выводит только один столбец. Это тот же результат, когда я использую «OR»

Затем я попытался

SELECT * FROM table WHERE Prop = "C" AND Prop = "Notes" 

Но я получил пустой результат, если я делать отдельные операторы выбора, как

SELECT * FROM table WHERE Prop = "C" 

А потом делаю другое один в отдельном окне

SELECT * FROM table WHERE Prop = "Notes" 

Это работает, но не так, как мне нужно, чтобы он работал.

Выход я надеюсь получить, как это:

| ID | Prop | Value | String  | 
| 1 | C  | 1  | NULL  | 
| 1 | Notes | NULL | TestNote | 
| 1 | Notes | NULL | Note2  | 
| 2 | C  | 1  | NULL  | 

Любая идея, как я могу заставить его работать?

+0

'SELECT * FROM таблицы WHERE Prop В ("C", "Примечания") 'Это должно сработать. – Mihai

+0

@ Михай проблема двойные кавычки? – AdamMc331

+0

это только получает строки C и не получает столбец «Примечания» – sleepsleepsleep90731

ответ

0

Почему вы не используете «ИЛИ» в промежутке?

SELECT * FROM table WHERE Prop = 'C' OR Prop = 'Notes' 
+0

это только получает строки C – sleepsleepsleep90731

+0

Проблема заключается в двойных кавычках, замене на одинарные кавычки, и ваш первый запрос с условием 'IN()' даст ожидаемый результат – Fabio

+0

спасибо @Fabio Edited :) –

0

Условие Prop = "C" AND Prop = "Notes" никогда не будет правдой, и поэтому не будет работать.

Ниже запрос, как размещены должны работать нормально

SELECT * FROM table WHERE Prop IN ("C", "Notes") 

Если это не работает, то это может быть так, что значения чувствительны к регистру.

Использование LOWER() функции вместе в запросе, как

SELECT * FROM table WHERE LOWER(Prop) in ('c','notes'); 

(OR) в качестве альтернативного использования UNION

SELECT * FROM table WHERE Prop = 'C' 

UNION 

SELECT * FROM table WHERE Prop = 'Notes' 
Смежные вопросы