2015-06-19 2 views
0

Я пытаюсь выяснить, где я могу установить переменную в SQLQuery. У меня есть два разных оператора select, которые будут иметь другое предложение WHERE в зависимости от ответа на оператор IF, но мне бы хотелось только выполнить запрос, чтобы сделать SET этой переменной один раз, и поскольку я уже запускаю код, чтобы найти этой конкретной таблицы, я бы хотел сделать это в первом выражении SELECT.Где объявить SET в SQL?

Переменная Я пытаюсь SET называется regType

SELECT S.subID, C.cKey 
FROM Comp AS C 
JOIN JData AS J ON J.pKey = C.primary 
JOIN Sub AS S ON J.fKey = S.pKey 
WHERE (//This is where I need the variable//) 

Я хочу создать переменную, потому что у меня есть второй ВЫБРАТЬ, который использует тот же ИНЕКЕ с теми же условиями на нем.

Где я могу установить переменную в инструкции SELECT, чтобы я мог использовать ее в своем ГДЕ?

ответ

2

Нет смысла «устанавливать» переменную в предложении where - может быть, вы имеете в виду в SELECT?

SELECT 
    S.subID, 
    C.cKey, 
    @regType = ??? 
FROM Comp AS C 
JOIN JData AS J ON J.pKey = C.primary 
JOIN Sub AS S ON J.fKey = S.pKey 
WHERE (...) 

Обратите внимание, что переменная не будет доступна в вашем WHERE пункте этого запроса с момента п WHERE оценивается до тогоSELECT. Вы можете либо повторить выражение, которое вы используете в SET, либо установить переменную до, выполнив запрос.

+0

Итак, у меня должен быть отдельный оператор SELECT для заполнения моего regType, если я планирую использовать его в блоке выше? –

+0

@ Или повторите выражение, которое вы используете в 'SET', да. Вы можете сделать это выражение в подзапросе, но вы не можете установить переменную в 'WHERE'. –

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