За последние 24 часа нас посетили 16469 программистов и 1589 роботов. Сейчас ищут 1258 программистов ...

Можно ли использовать операторы сравнения в предложениях SQL select для вычисления столбца?

Тема в разделе "MySQL", создана пользователем jesse, 25 янв 2023.

Метки:
  1. jesse

    jesse Новичок

    С нами с:
    10 янв 2023
    Сообщения:
    4
    Симпатии:
    0
    Можно ли использовать операторы сравнения (>, <, >=, <=, !=) в предложении select для вычисления столбцов в SQL? Например,

    Код (Text):
    1. SELECT column1, column2, column1 >= column2 AS "column3" FROM table.
    Кажется, только некоторые базы данных поддерживают операторы сравнения, например MS Access. Я использую ODBC для подключения к разным базам данных, один из способов, который я знаю, - вместо этого использовать предложение "CASE...WHEN...THEN...ELSE". Вопрос в том, есть ли другой способ использовать операторы сравнения в предложении select для вычисления новых столбцов?

    Другой вопрос: если я хочу использовать новый вычисляемый столбец (в примере «column3») для фильтрации некоторых данных в предложении WHERE, как должен выглядеть SQL?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.854
    Симпатии:
    748
    Адрес:
    Татарстан
    If()
     
    jesse нравится это.
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.836
    Симпатии:
    651
    Можно и сравнение (булевы будут представлены цифрами 0 и 1), можно и IF(), можно и оператор CASE.

    column3 в косые кавычки (backtick) возьмите. В мускуле они осн. для имен, а обычные двойные идут дефолтом, как альтернатива одинарным для обрамления значений.

    Продублируйте сравнение и т.п. в условии:
    Код (Text):
    1. WHERE [NOT] сравнение
    2. или
    3. WHERE сравнение[!]=1
    Другие варианты последнего условия: !=1 – это =0, =1 – это !=0. Вместо NOT тоже можно использовать воскл. знак.

    Если в выдаче результаты сравнения не нужны, столбец column3 можно убрать из списка SELECT.
     
    #3 miketomlin, 26 янв 2023
    Последнее редактирование: 26 янв 2023
    jesse нравится это.
  4. jesse

    jesse Новичок

    С нами с:
    10 янв 2023
    Сообщения:
    4
    Симпатии:
    0
    thanks it helped me