Конференция "Базы" » Firebird обращение к вычисляемым полям [Firebird 2.1.4]
 
  • Misha___ (12.01.12 12:47) [0]
    Добрый день!

    Подскажите, пожалуйста, можно ли в запросе обратиться к вычисляемому полю, например:

    Select
    (1 + 2) AS SM,
    SM || "..."

    FROM ...



    На SM указывает "Column unknow".

    Есть ли в Firebird возможность обращаться к таким полям?
  • Медвежонок Пятачок © (12.01.12 13:19) [1]
    селект фром селект (если оно там есть)

    либо сразу cast(1+2...)  || '...'
  • Misha___ (12.01.12 13:28) [2]

    > Медвежонок Пятачок ©   (12.01.12 13:19) [1]

    > либо сразу cast(1+2...)  || '...'


    это только для примера.

    На деле в расчете участвуют несколько полей. И результат расчета используются в нескольких местах запроса. И чтобы не писать несколько раз одно и тоже хочу обращаться к результату по "имени".


    >селект фром селект (если оно там есть)

    Можно сделать процедуру, но может можно проще?
  • Медвежонок Пятачок © (12.01.12 13:34) [3]
    На деле в расчете участвуют несколько полей

    нуишто?

    Можно сделать процедуру, но может можно проще?

    см [1]
  • Ega23 © (12.01.12 14:11) [4]

    select A.*, (A.C1 + 5) as C2
     from
       (
         select (1 + 2) as C1 from rdb$database
       ) as A



    Результат:

    C1  C2
    3   8  



    Только, ИМХО, это слишком извратно. Проще надо быть.
  • Misha___ (12.01.12 15:14) [5]
    Медвежонок Пятачок и Ega23, спасибо за помощь :)
  • Ega23 © (12.01.12 15:27) [6]

    > Медвежонок Пятачок и Ega23, спасибо за помощь :)


    Незачто, конечно. Но ты всё равно 15 раз подумай, прежде чем так делать. Должно быть довольно веское обоснование, чтобы так делать.
  • Виталий Панасенко (12.01.12 16:22) [7]
    CTE не поможет?
    Firebird_2_1\doc\sql.extensions\README.common_table_expressions.txt
 
Конференция "Базы" » Firebird обращение к вычисляемым полям [Firebird 2.1.4]
Есть новые Нет новых   [134431   +11][b:0][p:0.001]