2017-01-21 8 views
-2

У меня есть важный вопрос. Мне нужно использовать столбец два раза в WHERE условиях.одна колонка 2 раз в WHERE состояние

Пример здесь:

SELECT COL1 as salary, COL1 as money 
FROM employees 
WHERE salary = '3000' OR money = '5000' 

Как я могу ограничить ту же колонку дважды? Мне нужно простое решение. Лучше с псевдонимом. Спасибо

+1

это вы зарплату и деньги diffrent колонки ??? –

+0

Что такое ** настоящая ** проблема? –

+0

ваш вопрос прав. Я вставил другое решение, где вам не нужно указывать имя столбца 2 раза. Я делаю это именно то, что вы ищете. –

ответ

1

Когда инструкция SELECT обрабатывается, статья WHERE обрабатывается до пункта SELECT. Это означает, что при обработке предложения WHERE псевдонимы (которые определены в SELECT) еще не существуют. Запрос так, как вы его написали, потерпит неудачу с сообщением синтаксической ошибки, что-то вроде «неизвестного идентификатора».

Поскольку вы действительно фильтруете это значение в col1, почему вас это волнует, если он использует имя столбца col1 или псевдоним? Каким-то образом у меня создается впечатление, что ваша проблема другая, и вы слишком упростили ее до такой степени, что это уже не имеет смысла.

В любом случае: с тем, что вы показали (что, опять же, не может быть вашей реальной проблемы), то можно записать условие WHERE либо

where col1 = 3000 or col1 = 5000 

(при условии, col1 имеет number данных типа - нет никаких причин, чтобы сравнить строки как '3000' и '5000'), или как

where col1 in (3000, 5000) 
+0

Спасибо @mathguy. Ваш ответ очень полезен. Думаю, я могу решить свою проблему :) – Yves

Смежные вопросы