1. SQL / Говнокод #698

    −852.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    UPDATE DKNDRECTMPL SET
        TARGET = IIF(OPERATION IN (0, 1, 3, 4, 5), 0, 1),
        ACT = CASE OPERATION
              WHEN 0 THEN 0
              WHEN 1 THEN 1
          WHEN 2 THEN 1
          WHEN 3 THEN 1
          WHEN 4 THEN 1
          WHEN 5 THEN 3
              END;

    Это Firebird если чё.

    Запостил: guest, 12 Марта 2009

    Комментарии (5) RSS

    • Gemorroj:
      феерично)
      Ответить
    • Говнокодер:
      Вот и ума не приложу как написать принципиально лучше :)

      так и живет в проекте...
      Ответить
      • лучше выглядеть не будет :)
        case
        when operation between 2 and 4 then 1
        when operation = 5 then 3
        else operation
        end
        Ответить
    • Лучше, возможно, будет сделать UDF (не знаю поддерживаеться ли в FB) типа MapOperationToAct(@operation int)...
      Ответить
    • Говнокодер:
      UDF Поддерживается конечно. Но этот кусок юзается в конверторе старых версий, городить ради него УДФ влом. Вобщем-то нормальный говнокод, тока выглядит страшненько
      Ответить

    Добавить комментарий