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

    −121

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SELECT DISTINCT
                  b.Id,
                  concat('<button type=""button"" onclick=""DeleteContact(', cast(b.Id as char), ')"">Delete...</button>') as lnkDelete
    FROM tblContact   b
    WHERE ....

    Вот так вот, оказывается, можно линк формировать....

    domovoy, 05 Декабря 2011

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

    −126

    1. 1
    2. 2
    3. 3
    AND (type = 2 OR type = 5 AND (type <> 3 OR type <> 20))
    
    Очередной перл предшественника :)

    labutinpa, 29 Ноября 2011

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

    −110

    1. 1
    2. 2
    3. 3
    CREATE INDEX "SCHEMANAME"."PLIN_DPINS_FK_I" ON "SCHEMANAME"."CLIENT_PLAN_INSTALMENTS" ("DPLNS_PLAN_ID", "DPOPT_OPTION_ID", "INSTALMENT_NUM");
    CREATE UNIQUE INDEX "SCHEMANAME"."PLIN_PK" ON "SCHEMANAME"."CLIENT_PLAN_INSTALMENTS" ("CLI_CLIENT_ID", "DPLNS_PLAN_ID", "DPOPT_OPTION_ID", "CLIPLN_PLAN_DATE", "CLIPLN_PLAN_TYPE", "INSTALMENT_NUM");
    CREATE UNIQUE INDEX "SCHEMANAME"."CLIPLN_PK" ON "SCHEMANAME"."CLIENT_PLAN" ("CLI_CLIENT_ID", "DPLNS_PLAN_ID", "DPOPT_OPTION_ID", "PLAN_DATE", "PLAN_TYPE");

    Реляционные? Не, не слышал.

    govnoguest, 24 Ноября 2011

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

    −108

    1. 1
    select 7-(8-datepart(weekday,getDate())) % 7

    Написал для конвертации дней недели начинающихся с SUNDAY=1, в привычные Пн-1, Вс-7

    3.14159265, 23 Ноября 2011

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

    −111

    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
    UPDATE  zayavlenie_tmp
        SET error    = 1,
            errorcod = 4
        FROM   zayavlenie_tmp
        WHERE  zayavlenie_tmp.error IS NULL
                    AND (rtrim(fam) = ''
                         OR LEN(ltrim(rtrim(fam))) < 2
                         OR fam LIKE '%0%'
                         OR fam LIKE '%1%'
                         OR fam LIKE '%2%'
                         OR fam LIKE '%3%'
                         OR fam LIKE '%4%'
                         OR fam LIKE '%5%'
                         OR fam LIKE '%6%'
                         OR fam LIKE '%7%'
                         OR fam LIKE '%8%'
                         OR fam LIKE '%9%'
    
    UPDATE  zayavlenie_tmp
        SET error    = 1,
            errorcod = 5
         FROM   zayavlenie_tmp
          WHERE  zayavlenie_tmp.error IS NULL
                    AND (rtrim(im) = ''
                         OR LEN(ltrim(rtrim(im))) < 2
                         OR im LIKE '%0%'
                         OR im LIKE '%1%'
                         OR im LIKE '%2%'
                         OR im LIKE '%3%'
                         OR im LIKE '%4%'
                         OR im LIKE '%5%'
                         OR im LIKE '%6%'
                         OR im LIKE '%7%'
                         OR im LIKE '%8%'
                         OR im LIKE '%9%'

    При импорте поля проверяются на соответствие (около 30 разнобразных правил). Хранимику писал мой начальнег :) Выкладываю УЖЕ немного исправленный для удобопонимания вариант, в исходнике таблицы еще зачем-то джойнились сами на себя. Всего в хранимике 50 (!!!) таких запросов, и каждый не менее эпичный )) Хотел исправить это хозяйство одним более-менее цивильным запросом, но где-то на половине у меня руки опустились

    spray07, 21 Ноября 2011

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

    −115

    1. 1
    SELECT id, login, 0 AS shows, 0 AS clicks, 0 AS money FROM users WHERE is_adv=1 AND is_blocked=0 AND (shows <> 0 AND clicks <> 0 AND money <> 0)

    peredozo, 07 Ноября 2011

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

    −108

    1. 1
    select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(t1.PART_NUMBER, '@i@', ' '),'@a@', '/'),'@@@', '\'),'@b@', ':'),'@c@', '*'),'@d@', '?'),'@e@', '"'),'@f@', '<'),'@g@', '>'),'@h@', '|'),'@j@', '&'),'@k@', ''''),'@l@', ',') as 'PART_NUMBER',.....

    edalalaeva, 02 Ноября 2011

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

    −118

    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
    DROP PROCEDURE IF EXISTS postgkh.ACCOUNT_ITM $$
    CREATE PROCEDURE postgkh.ACCOUNT_ITM(IN PERIOD DATE, IN ACC_ID INT)
    BEGIN
        SELECT A.ACCOUNT_ID, A.ACCOUNT_NO
    # Смачный кусок кода
          (SELECT GROUP_CONCAT(document_no ORDER BY document_no SEPARATOR ', ') DOCUMENT_NO
                FROM
                     (SELECT d.document_no document_no
                        FROM postgkh.docar dr INNER JOIN
                             postgkh.document d ON dr.document_id = d.document_id
                        WHERE dr.account_id = ACC_ID
                              AND d.document_fromdate <= LAST_DAY(PERIOD)
                              AND (d.DOCUMENT_CLOSEDATE >= PERIOD OR d.DOCUMENT_CLOSEDATE IS NULL)
                      ) d
             ) DOCUMENT_NO
        FROM postgkh.ACCOUNT
        WHERE A.ACCOUNT_ID = ACC_ID
        GROUP BY A.ACCOUNT_ID
        LIMIT 1;
    END $$

    MySQL

    dmezentsev, 31 Октября 2011

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

    −106

    1. 1
    Вчера узнал, что 30 лет назад меня родила мама только для того, чтобы получить квартиру.

    "Поясните" - Вы?

    alexoy, 29 Октября 2011

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

    −141

    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
    CREATE MATERIALIZED VIEW LEASE_NODES_SUMMARY_SDS
    ...
    AS
    SELECT
    ...
    FROM lease_nodes_sds;
    DECLARE
      v_count NUMBER:=0;
    BEGIN
      LOOP
      SELECT COUNT(1) INTO v_count FROM lease_nodes_summary_sds;
      EXIT WHEN v_count>0;
      END LOOP;
    END;

    Торопиться некуда. Будем ждать пока появятся строки в lease_nodes_sds...

    slbsomeone, 28 Октября 2011

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