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

    −120

    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
    CREATE TABLE `numbers` (
      `number` BIGINT(20) DEFAULT NULL
    ) ENGINE=InnoDB;
    
    CREATE TABLE `numbers_small` (
      `number` INT(11) DEFAULT NULL
    ) ENGINE=InnoDB;
    
     -- numbers
    
    INSERT INTO `numbers` (`number`) VALUES('0');
    INSERT INTO `numbers` (`number`) VALUES('1000');
    INSERT INTO `numbers` (`number`) VALUES('2000');
    INSERT INTO `numbers` (`number`) VALUES('3000');
    INSERT INTO `numbers` (`number`) VALUES('4000');
    INSERT INTO `numbers` (`number`) VALUES('5000');
    
    -- 10 000 lines of inserting numbers into table numbers
    -- ...
    INSERT INTO `numbers` (`number`) VALUES('5999');
    INSERT INTO `numbers` (`number`) VALUES('6999');
    INSERT INTO `numbers` (`number`) VALUES('7999');
    INSERT INTO `numbers` (`number`) VALUES('8999');
    INSERT INTO `numbers` (`number`) VALUES('9999');
    
    -- numbers small
    
    INSERT INTO `numbers_small` (`number`) VALUES('0');
    INSERT INTO `numbers_small` (`number`) VALUES('1');
    INSERT INTO `numbers_small` (`number`) VALUES('2');
    INSERT INTO `numbers_small` (`number`) VALUES('3');
    INSERT INTO `numbers_small` (`number`) VALUES('4');
    INSERT INTO `numbers_small` (`number`) VALUES('5');
    INSERT INTO `numbers_small` (`number`) VALUES('6');
    INSERT INTO `numbers_small` (`number`) VALUES('7');
    INSERT INTO `numbers_small` (`number`) VALUES('8');
    INSERT INTO `numbers_small` (`number`) VALUES('9');

    Сделали нам программу на java. Прислали скрипт для обновления базы данных DatabaseUpdateScript.sql на 874 KB.

    ftr, 08 Октября 2014

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

    −118

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Оригинал
    
    <string name="create_table_report_sms">create table reportSms( id TEXT NOT NULL );</string>
    <string name="create_table_report_sms_pending">create table reportSmsPending( id TEXT NOT NULL, address TEXT, body TEXT, date TEXT );</string>
    
    Перевод
    
    <string name="create_table_report_sms">Создание таблицы отчета( id TEXT NOT NULL );</string>
    <string name="create_table_report_sms_pending">Ожидание создания таблицы отчета( id TEXT NOT NULL, address TEXT, body TEXT, date TEXT );</string>

    Android, сложности перевода.

    donbot, 07 Октября 2014

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

    −119

    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
    select *
      from (  select ... ,
                     case
                        when     txn_minute >= date '2014-08-01'
                             and txn_minute < date '2014-08-02'
                        then
                           '1 августа'
                        when     txn_minute >= date '2014-08-02'
                             and txn_minute < date '2014-08-03'
                        then
                           '2 августа'
                        when     txn_minute >= date '2014-08-03'
                             and txn_minute < date '2014-08-04'
                        then
                           '3 августа'
                        when     txn_minute >= date '2014-08-04'
                             and txn_minute < date '2014-08-05'
                        then
                           '4 августа'
                        when     txn_minute >= date '2014-08-05'
                             and txn_minute < date '2014-08-06'
                        then
                           '5 августа'
                       ..... 
                        when     txn_minute >= date '2014-08-31'
                             and txn_minute < date '2014-09-01'
                        then
                           '31 августа'
                     end
                        "Дата"
                from txn
               where     txn_minute >= date '2014-08-01'
                     and txn_minute < date '2014-09-01'
            group by ..... 
                    ..... 
                     end) pivot (sum (am)
                          for "Дата"
                          in  ('1 августа',
                    .....
                              '29 августа',
                              '30 августа',
                              '31 августа'))

    Кто-то подсказал правильное решение :-)

    Djayn, 24 Сентября 2014

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

    −122

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Select 
    	min(convert(char(10), DatField, 102)) as DatField,  
    	min('ConstantForMe') as type, 
    	f1
    From sometable
    Where /*условия*/
    Group By f1

    Люблю я агрегаты,
    Любовью к ним пылаю неземною.
    Неявные форматы -
    И что хотите делайте со мною!
    Для вас это - ерунда,
    Подумаешь convert!
    Но вы возьмите дату,
    Но текстового формата,
    Десяток первых цифер,
    Смешайте всё с константой,
    И группируйте с ней.

    Поймёте вы всем сердцем -
    Какое это чудо,
    Потом вам станет худо,
    Но это уж потом.

    bliznezz, 16 Сентября 2014

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

    −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
    CREATE FUNCTION get_date RETURN DATE
    IS
    BEGIN
        RETURN SYSDATE;
    END;
    
    DECLARE
        v_date  DATE;
        v_dummy VARCHAR2(2);
    BEGIN
    
    v_date := SYSDATE+4/24/60/60;
    
    SELECT MAX(dummy)
      INTO v_dummy
      FROM dual
    connect BY v_date > get_date;
    
    END;

    "А есть ли какой-то еще способ, когда нет прав на DBMS_LOCK? "

    http://www.sql.ru/forum/1115120/pauza-v-pl-sql-kak

    n1919, 10 Сентября 2014

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

    −116

    1. 1
    2. 2
    3. 3
    insert into #DivByDep(DivisionGUID,DivisionName)
    select dbd.DivisionGUID,ISNULL(d.NameShort,d.NameShort) from DivByDep(@DepartmentGUID, @DivisionGUID, 4) dbd
    LEFT JOIN rrMasterData.dbo.Division d WITH (NOLOCK) ON d.GUID=dbd.DivisionGUID

    ISNULL(d.NameShort,d.NameShort) - а если имя пустое, то... ну что же, оставим

    BobKexit, 07 Августа 2014

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

    −117

    1. 1
    DELETE FROM "DB_NAME"."TABLE_NAME" WHERE ROWID = 'AAAgtGAAFAAAAYDAAC' AND ORA_ROWSCN = '17177328' and ( "PKEY_COL" is null or "PKEY_COL" is not null )

    Запрос, генерируемый SQL Developer для удаления строки. Ну чё, зато работает.

    Elvenfighter, 31 Июля 2014

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

    −116

    1. 1
    2. 2
    $qkolsum = mysql_fetch_object(mysql_query("SELECT SUM(Kol) 's' FROM PostavkiDetail WHERE PostavkiID = '{$qspec->PostavkiID}'"));
    $qkolsumitog = mysql_fetch_object(mysql_query("SELECT SUM(SumItog) 's' FROM PostavkiDetail WHERE PostavkiID = '{$qspec->PostavkiID}'"));

    Тут и PHP не особо хороший, но соль все-таки в двух запросах к одной таблице. Посчитать суммы в двух колонках с помощью одного запроса - это, видимо, что-то запредельное.

    Khvorostin, 30 Июля 2014

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

    −166

    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
    CREATE OR REPLACE FUNCTION "GET_SOTR_FULL_NAME" (sotr_id in number)
      RETURN  varchar2 IS
    cursor surname (sotr_id number)
     is
      select fc_fam from tsotr
      where tsotr.fk_id=sotr_id;
    cursor name (sotr_id number)
     is
      select fc_name from tsotr
      where tsotr.fk_id=sotr_id;
    cursor patronym (sotr_id number)
     is
      select fc_otch from tsotr
      where tsotr.fk_id=sotr_id;
     fio   varchar2(90);
     fam   varchar2(30);
     im    varchar2(30);
     otch  varchar2(30);
    BEGIN
      open surname (sotr_id);
       fetch surname into fam;
      close surname;
      open name (sotr_id);
       fetch name into im;
      close name;
      open patronym (sotr_id);
       fetch patronym into otch;
      close patronym;
       fio:=fam||' '||im||' '||otch;
      return fio;
    END;

    По ИД сотрудника получаем его ФИО

    Dimm_J, 23 Июня 2014

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

    −165

    1. 1
    passport integer

    Из дипломной работы. Человек хоть раз открывал свой паспорт?

    bormand, 19 Июня 2014

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