SQL с CASE: определить наличие значения, содержащегося в столбце. ⇐ Python
-
Anonymous
SQL с CASE: определить наличие значения, содержащегося в столбце.
Я впервые создал SQL с помощью CASE. Должно быть, я сделал что-то не так с WHEN и ELSE.
Я хотел бы получить условие, которое:
[*]
Если team_away.... содержится в столбце round, который имеет 1... и если team_away содержится в столбце team_away....тогда все в порядке
[*]
Если team_away.... содержится в столбце round, который имеет 1... и если team_away содержится в столбце team_home....тогда он имеет значение NULL
Обратите внимание, что team_away=? — это и переменная, и имя столбца
Что я делаю не так?
ВЫБЕРИТЕ команда_дома, команда_на выезде, счет_дома, счет_на выезде ИЗ результатов ГДЕ (СЛУЧАЙ КОГДА current_round= 1 И team_home = team_away=? ТОГДА НУЛЬ ELSE current_round= 1 И team_away = team_away=? КОНЕЦ) ПРЕДЕЛ 1; ''', [Match_Team_Away, Match_Team_Away]) Возможно, проблема в настройке синтаксиса: AND team_away = team_away=? или team_home = team_away=? (два =)
ОБНОВЛЕНИЕ:
Результат таблицы:
current_round дом_команды team_away score_home score_away 1 Ливерпуль Юнайтед 3 0 1 Арсенал Астон Вилла 4 1
Например, если моя переменная team_away (team_away=?) равна United, это означает, что она находится в таблице team_away, как вы можете видеть . В этом случае я хотел бы использовать второй CASE (тот, что с ELSE). А если бы United находился в таблице team_home, а не в team_away, то мне бы хотелось получить NULL
Я впервые создал SQL с помощью CASE. Должно быть, я сделал что-то не так с WHEN и ELSE.
Я хотел бы получить условие, которое:
[*]
Если team_away.... содержится в столбце round, который имеет 1... и если team_away содержится в столбце team_away....тогда все в порядке
[*]
Если team_away.... содержится в столбце round, который имеет 1... и если team_away содержится в столбце team_home....тогда он имеет значение NULL
Обратите внимание, что team_away=? — это и переменная, и имя столбца
Что я делаю не так?
ВЫБЕРИТЕ команда_дома, команда_на выезде, счет_дома, счет_на выезде ИЗ результатов ГДЕ (СЛУЧАЙ КОГДА current_round= 1 И team_home = team_away=? ТОГДА НУЛЬ ELSE current_round= 1 И team_away = team_away=? КОНЕЦ) ПРЕДЕЛ 1; ''', [Match_Team_Away, Match_Team_Away]) Возможно, проблема в настройке синтаксиса: AND team_away = team_away=? или team_home = team_away=? (два =)
ОБНОВЛЕНИЕ:
Результат таблицы:
current_round дом_команды team_away score_home score_away 1 Ливерпуль Юнайтед 3 0 1 Арсенал Астон Вилла 4 1
Например, если моя переменная team_away (team_away=?) равна United, это означает, что она находится в таблице team_away, как вы можете видеть . В этом случае я хотел бы использовать второй CASE (тот, что с ELSE). А если бы United находился в таблице team_home, а не в team_away, то мне бы хотелось получить NULL
Мобильная версия