Задать вопрос
Ответы пользователя по тегу SQL
  • Как преобразовать UNION-запрос в простой?

    pickHabr
    @pickHabr
    Костыльных дел мастер
    Наркомания, но должно работать

    SELECT
        CASE 
            WHEN FirstField LIKE '*о*' THEN FirstField
            WHEN SecondField LIKE '*о*' THEN SecondField
        END AS Field
    FROM Table
    WHERE FirstField LIKE '*о*'
    OR SecondField LIKE '*о*';


    UPD
    Хорошо, продолжаем наркоманить :D

    С учетом комментария Vitsliputsli

    SELECT DISTINCT
        CASE 
            WHEN t1.FirstField  LIKE '*о*' THEN t1.FirstField
            WHEN t2.SecondField  LIKE '*о*' THEN t2.SecondField
        END AS Field
    
    FROM Table t1
    
    LEFT JOIN Table t2 ON 1=1
    
    WHERE t1.FirstField LIKE '*о*'
       OR t2.SecondField LIKE '*о*';


    Добавили distinct чтобы не было повторений, добавили join той же таблицы, по t1 проверяем подходит ли FirstField по t2 - SecondField. Единственный вопрос, а допустимо ли в этой задаче использовать join)

    PS разумеется запрос говна, про оптимизацию речи не идет
    Ответ написан
    1 комментарий