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

    −132

    1. 1
    2. 2
    if isnull(@ProfileID, 0) <> 0
    ...

    bullshit

    Запостил: fr0mrus, 16 Марта 2012

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

    • I don't think so
      It's just to be ensure that 0 and NULL have been compared in the same way.
      Ответить
      • Глупости. 0 в принципе не может быть равно NULL, так что вполне достаточно if @ProfileID <> 0.
        Ответить
        • > 0 в принципе не может быть равно NULL
          Ну вот автор и добивается этим кодом, чтобы NULL и 0 приводили к одинаковому результату.

          > так что вполне достаточно if @ProfileID <> 0
          if @ProfileID <> 0 and @ProfileID is not null
          Ответить
          • Хотя я походу зафейлил, NULL <> 0 это NULL, NULL в if зачтется как false. Т.е. код @ProfileID <> 0 корректен. Но тогда есть вариант еще проще:
            if @ProfileID
            Или так можно не во всех субд?
            Ответить
    • По-моему все нормально.
      Это эквивалентно:
      if (@ProfileID<>0) or (@ProfileID is not null)
      Ответить
      • > (@ProfileID<>0) or (@ProfileID is not null)
        Во-первых это длиннее, во-вторых сейчас оно в ife, а завтра может переехать в where. А вот там OR нежелателен.
        Ответить
      • > or
        and
        Ответить
    • Может проще так?:
      if @ProfileID <> 0
      ...


      Хотя второй ответ, тоже достоин уважения. :-)
      Ответить

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