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

    −153

    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
    create table ISU.Н_ЛЮДИ
    (
      ИД             NUMBER(9) not null,
      ФАМИЛИЯ        VARCHAR2(25) not null,
      ИМЯ            VARCHAR2(15) not null,
      ОТЧЕСТВО       VARCHAR2(20),
      ПИН            VARCHAR2(20),
      ИНН            VARCHAR2(20),
      ДАТА_РОЖДЕНИЯ  DATE not null,
      ПОЛ            CHAR(1) not null,
      МЕСТО_РОЖДЕНИЯ VARCHAR2(200),
      ИНОСТРАН       VARCHAR2(3) not null,
      ФИО            VARCHAR2(80),
      ДАТА_СМЕРТИ    DATE default '09.09.9999' not null,
      КТО_СОЗДАЛ     VARCHAR2(40) default USER not null,
      КОГДА_СОЗДАЛ   DATE default SYSDATE not null,
      КТО_ИЗМЕНИЛ    VARCHAR2(40) not null,
      КОГДА_ИЗМЕНИЛ  DATE default SYSDATE not null
    )

    Мопед не мой.
    PL/SQL, крупная организация.
    Oracle, зачем ты разрешил кириллицу в именах полей?

    Miketsukami, 10 Октября 2012

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

    −119

    1. 1
    select count(*) from jxlspp_prices  where 0!=0  or catid = 2	}

    А вот так его!

    virtual_cia, 07 Октября 2012

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

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SELECT ISNULL(SUM(1), 0) 
     FROM Stat_DailySnapshotPurchases
     WHERE 1=1
      AND ForDate BETWEEN '2012-08-01' AND '2012-09-14'
      AND ItemType = 4

    Оригинальный способ подсчета количества строк

    leon_mz, 01 Октября 2012

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

    −164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    create procedure PVN_CNV_DATE (
        DATUMS varchar(28))
    returns (
        RDATUMS date)
    AS
    begin
     datums=rdatums;
     when any do exit;
    end

    Очередной перл предшественника. cast as date? Не, не видал..

    N21, 19 Сентября 2012

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

    −166

    1. 1
    select r.nID as id, d.nId as id from Tm_Region as r join Tm_Direction as d where d.strName = r.strName and d.nDepth = 2 and d.nInternational = 1;

    ответ обрабатывается в Java через "forName", так что "as *" стоит спец...сначала все было норм, потом чуть по переименовывал...минут 10 искал эту ошибку

    Dougrinch, 18 Сентября 2012

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

    −160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    QString query4="INSERT INTO `"+mb+"`.`cubes` (`user_id`, `name`) VALUES (0, '"+name+"')";
    mysql.sqlQuery(query4, true);
    mysql.sqlQuery("SELECT * FROM `"+mb+"`.`cubes` WHERE name='"+name+"' AND user_id="+QString::number(userID), true);
    mysql.data_connection_bind(true);
    mysql.getRow();
    int id=mysql.getUint32(o);
    mysql.sqlQuery("UPDATE `"+mb+"`.`cubes` SET user_id=1 WHERE user_id="+QString::number(userID), true);
    mysql.sqlQuery("DELETE FROM `"+mb+"`.`users` WHERE `name`="+QString::number(getpid()), true);
    qDebug()<<"CubeID"<<id;

    Судя по словам автора: он не осилил lastInsertId, поэтому пытался вставить запись с заранее не существующим user_id, чтобы затем однозначно извлеч эту строку и получить уже долгожданое поле id.

    Try, 13 Сентября 2012

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

    −158

    1. 1
    2. 2
    3. 3
    4. 4
    SELECT ft_login,fi_system,ft_password,fk_id
    FROM users u
    INNER JOIN taccountscontent t ON u.id = t.fk_id
    WHERE u.id IN (select id from users where id=123)

    Оригинал http://www.askdev.ru/question/16663/%D0%97%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D0%BA-%D0%91%D0%94-%D0%B8-%D1%86%D0%B8%D0%BA%D0%BB-While/

    et, 13 Сентября 2012

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

    −161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (IDATUMS is null) then
        begin
            suspend;
            exit;
            REZULT = "Nevar importet gramatojumu id:" || :NOMER_DOC;
            execute procedure TSEND_ERROR(:REZULT);
        end

    Гениальнейшая PSQL-конструкция в СУБД Firebird. Автор, видимо, не в курсе, что после EXIT процедура больше не выполняется :]

    N21, 13 Сентября 2012

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

    −160

    1. 1
    SELECT count(*) as count FROM wz_vacancy WHERE action='1'   and TO_DAYS(NOW()) - TO_DAYS(date) = '0';

    * индекс только по primary key - id
    * Оригинальный способ выборки сегодняшних объектов :) особенно, когда можно подставить конкретные даты еще в коде программы.

    scorcher, 19 Августа 2012

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

    −134

    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
    SELECT     ISNULL(SUM(dbo.colors.setup_time_base + dbo.colors.setup_time_add), 0) AS setup_time, ISNULL(SUM(dbo.colors.setup_time_base), 0) AS setup_time_base, 
                          ISNULL(SUM(dbo.colors.setup_time_add), 0) AS setup_time_add, ISNULL(SUM(dbo.colors.setup_length_base), 0) + 40 AS setup_lenght_base, 
                          ISNULL(SUM(dbo.colors.setup_lenght_add), 0) AS setup_lenght_add, ISNULL(SUM(dbo.colors.setup_length_base + dbo.colors.setup_lenght_add), 0) 
                          + 40 AS setup_lenght, ISNULL(COUNT(dbo.dir_order_sections.color_id), 0) AS section_count, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.5 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.65 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 6 THEN 1 WHEN COUNT(dbo.dir_order_sections.color_id) >= 7 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 1.15 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 1.3 ELSE 0 END AS section_rate, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 0.07 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 0.07 ELSE 0 END AS role_rate, CASE WHEN COUNT(dbo.dir_order_sections.color_id) 
                          = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 10 THEN 0.07 WHEN COUNT(dbo.dir_order_sections.color_id) >= 11 THEN 0.07 ELSE 0 END AS role_shift_rate_base, ISNULL(SUM(dbo.colors.role_shift_rate_add), 
                          0) + CASE WHEN COUNT(dbo.dir_order_sections.color_id) = 0 THEN 0.03 WHEN COUNT(dbo.dir_order_sections.color_id) >= 1 AND 
                          COUNT(dbo.dir_order_sections.color_id) <= 2 THEN 0.04 WHEN COUNT(dbo.dir_order_sections.color_id) >= 3 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 7 THEN 0.05 WHEN COUNT(dbo.dir_order_sections.color_id) >= 8 AND COUNT(dbo.dir_order_sections.color_id) 
                          <= 9 THEN 0.06 WHEN COUNT(dbo.dir_order_sections.color_id) >= 10 THEN 0.07 ELSE 0 END AS role_shift_rate, dbo.orders.order_n
    FROM         dbo.orders LEFT OUTER JOIN
                          dbo.dir_order_sections ON dbo.dir_order_sections.order_n = dbo.orders.order_n AND dbo.dir_order_sections.color_id <> 0 AND 
                          dbo.dir_order_sections.color_id IS NOT NULL LEFT OUTER JOIN
                          dbo.colors ON dbo.dir_order_sections.color_id = dbo.colors.color_id
    GROUP BY dbo.orders.order_n

    someone, 15 Июля 2012

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