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

    −84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    BEGIN
    select count(*) INTO var FROM table_name;
    EXCEPTION WHEN OTHERS THEN 
    var:=0;
    END;

    Если что-то пойдет не так...
    P.S.: count() всегда возвращает какое-либо значение. Ошибке не откуда взяться.

    mishok, 01 Июля 2015

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

    −176

    1. 1
    and (ss_1<>'SS0001' or ss_1<>'SS0002' or ss_1<>'SS0010')

    Сегодня на продакшене было обнаружено гениальное выражение в одном из запросов.

    mishok, 01 Июля 2015

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

    −160

    1. 1
    2. 2
    ALTER TABLE db.table ADD CONSTRAINT cu_contents UNIQUE (contents(128));
    ALTER TABLE db.table DROP INDEX cu_contents;

    Создал констрейнт, удал индекс. Загадки Майсиквела.

    wvxvw, 30 Июня 2015

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

    −163

    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
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    SET DELETED ON
    store 0 to r_klot,r_kpot,r_vspot,r_klgv,r_kpgv,r_vspgv,r_klvod,r_kpvod,r_vspvod,r_klngv,r_kpngv,r_vspngv
    store 0 to r_klkan,r_kpkan,r_sumkan,r_klmys,r_kpmys,r_summys,r_klmys1,r_kpmys1,r_summys1,r_vspmys,r_vspkan,r_vspmys1
    STORE 0 TO r_klmys2,r_kpmys2,r_summys2,r_vspmys2
    STORE 0 TO r_klmys3,r_kpmys3,r_summys3,r_vspmys3
    STORE 0 TO r_klmys4,r_kpmys4,r_summys4,r_vspmys4
    STORE 0 TO r_klmys5,r_kpmys5,r_summys5,r_vspmys5
    SELECT 2
    USE tarif INDEX tarif SHARED
    SELECT 1
    use kw SHARED
    SET RELATION TO kodtar INTO tarif
    go top
    do while .not. eof()
    if kw.ot=0
    r_klot=r_klot+1
    r_kpot=r_kpot+kp
    r_vspot=r_vspot+vsp
    endif
    if kw.gv#0 .or. prgvod=0
    r_klgv=r_klgv+1
    r_kpgv=r_kpgv+kp
    r_vspgv=r_vspgv+vsp
    endif
    if kw.vod#0 .or. prv=0
    r_klvod=r_klvod+1
    r_kpvod=r_kpvod+kp
    r_vspvod=r_vspvod+vsp
    endif
    IF tarif.tgv#0
    r_klngv=r_klngv+1
    r_kpngv=r_kpngv+kp
    r_vspngv=r_vspngv+vsp
    ENDIF
    IF kw.kan#0
    r_klkan=r_klkan+1
    r_kpkan=r_kpkan+kp
    r_sumkan=r_sumkan+kan
    r_vspkan=r_vspkan+vsp
    ENDIF
    IF kw.mys#0
    r_klmys=r_klmys+1
    r_kpmys=r_kpmys+kp
    r_summys=r_summys+mys
    r_vspmys=r_vspmys+vsp
    ENDIF
    *газ.плита 2-х комфорочная
    IF kw.gpp=1
    r_klmys1=r_klmys1+1
    r_kpmys1=r_kpmys1+kp
    r_summys1=r_summys1+gps
    r_vspmys1=r_vspmys1+vsp
    ENDIF
    *газ.плита 4-х комфорочная
    IF kw.gpp=2
    r_klmys2=r_klmys2+1
    r_kpmys2=r_kpmys2+kp
    r_summys2=r_summys2+gps
    r_vspmys2=r_vspmys2+vsp
    ENDIF
    *нагреватель проточный (обычная колонка)
    IF kw.gkp=1
    r_klmys3=r_klmys3+1
    r_kpmys3=r_kpmys3+kp
    r_summys3=r_summys3+gks
    r_vspmys3=r_vspmys3+vsp
    ENDIF
    *нагреватель емкостной, газовый (титан)
    IF kw.gkp=2
    r_klmys4=r_klmys4+1
    r_kpmys4=r_kpmys4+kp
    r_summys4=r_summys4+gks
    r_vspmys4=r_vspmys4+vsp
    ENDIF
    *водоотведение
    IF kw.yb#0
    r_klmys5=r_klmys5+1
    r_kpmys5=r_kpmys5+kp
    r_summys5=r_summys5+yb
    r_vspmys5=r_vspmys5+vsp
    ENDIF
    skip
    enddo
    REPORT FORM spr1r TO PRINTER prompt PREVIEW 
    ---
    set date british
      select 2
     use sprstr index sprstr SHARED 
    SET ORDER TO TAG KST OF SPRSTR.CDX
    SELE 3
     USE TARIF INDEX TARIF SHARED
      select 1
     use kw index kw1 SHARED 
    
     set relation to kst into b,kodtar INTO c
    SET FILTER TO ls=r_ls  
    sdr=DTOC(thisform.text1.Value)
    REPORT FORM subsid PREVIEW

    Вот такой пиздец мне надо сопровождать и дописывать. Судя по говённости кода, по уёбскому названию переменных, по дико ебланской манере писать код - аффтар из Дульфистов, только у них может получиться настолько уёбский код.

    DelphiGovno, 24 Июня 2015

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

    −161

    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
    CREATE TABLE [dbo].[Images](
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[category] [int] NOT NULL,
    	[tag] [nvarchar](16) NOT NULL,
    	[description] [nvarchar](128) NOT NULL,
    	[comment] [nvarchar](1024) NULL,
    	[code01] [nvarchar](max) NULL,
    	[code02] [nvarchar](max) NULL,
    	[code03] [nvarchar](max) NULL,
    	[code04] [nvarchar](max) NULL,
    	[code05] [nvarchar](max) NULL,
    	[code06] [nvarchar](max) NULL,
    	[code07] [nvarchar](max) NULL,
    	[code08] [nvarchar](max) NULL,
    	[code09] [nvarchar](max) NULL,
    	[code10] [nvarchar](max) NULL,
    	[code]  AS (rtrim(((((((((((((((((((((((((((((rtrim(replace(replace(coalesce([code01],''),char((13)),' '),char((10)),' '))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code02],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code03],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code04],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code05],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code06],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code07],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code08],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code09],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10)))+rtrim(replace(replace(coalesce([code10],''),char((13)),' '),char((10)),' ')))+char((13)))+char((10))))
    )

    10 нормальная форма (_*_)

    drup, 28 Мая 2015

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

    −164

    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
    select top 1000
    		[ObjectType] = N'Scv',
    		[SourceCodeId] = d.[IDOBJ], 
    		[ParameterName] = N'DlitZamera',
    		[DateTime] = l1.[VALUEDATE], 
    		[Value] = l1.[PERIOD], 
    		[vValue] = NULL, [IsLive] = 1
    from tm_mn_c8_kust.[dbo].[Lg] as l1
    left join tm_mn_c8_kust.[dbo].[Lg] as l2 on (l1.IDOBJ=l2.IDOBJ and l1.ValueDATE<l2.ValueDATE)
    inner join tm_mn_c8_kust.[dbo].[TiiDat] as d on d.IDDAT = l1.IDOBJ
    where 	l1.TYPEOBJ=330 and 
    		l1.IDPAR=15 and
    		l2.ValueDATE is null

    Задание:
    Выбрать последнее добавленное значение из таблицы и заджойнить данные из другой таблицы

    Решение:
    Join таблицы с самой собой по условию l1.ValueDATE<l2.ValueDATE и взять только строки, которые не сростились :)
    (Строки 9 и 13)

    SatanicArmpit, 21 Мая 2015

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

    −161

    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
    select distinct cast(null as integer) NZAP,d_ext_uslug_napr_zag.id_doc_public NNAPR,d_ext_uslug_napr_zag.date_doc DNAPR, 
     d_ext_uslug_napr_zag.form_med_pom  FOMP, tab_lpu.lpu_ext_code MONAPR, tab_struct_obos_unit.code_ffoms PMONAPR, cast (:lpu_ext_code  as varchar(20)) MO, TSOU1.code_ffoms PMO, 
     tab_other_strings.code_external VPOLIS,patients.polis_s SPOLIS,patients.polis_n NPOLIS, 
     tab_msk.smocod SMO, tab_msk.TF_OKATO TER, 
     d_ext_uslug_napr_zag.fam FAM, d_ext_uslug_napr_zag.nam IM, d_ext_uslug_napr_zag.otch OT, d_ext_uslug_napr_zag.male P, d_ext_uslug_napr_zag.born DR, 
     patients.TELEFON TEL, 
     d_ext_uslug_napr_zag.ds_osn_mkb DSNAPR, TAB_PLACE_PARAM.profil_koek_for_foms PROFK,tab_profile.CODE_PROFILE_EGISZ_PRFO PROFO, 
     TAB_PLACE_PARAM.profil_koek_for_foms PROFKNAPR, 
     tab_profile.CODE_PROFILE_EGISZ_PRFO  PROFONAPR,
     users.snils MEDRAB, 
     med_kart.id_kart_public NKART, med_kart.ds_priem_mkb DS,           
     d_ext_uslug_napr_zag.date_plan_gosp  DPGOSP, 
     MED_KART.date_vipis_planed DPOGOSP  
     from d_ext_uslug_napr_zag 
     left outer join patients on patients.id_pac=d_ext_uslug_napr_zag.pac_id and patients.dae>='31.12.9999'    
     left outer join tab_other_strings on tab_other_strings.id_string=patients.polis_type             
     left outer join tab_profile on tab_profile.id_profile=d_ext_uslug_napr_zag.TARGET_PODR_PROFILE   
     left outer join R_USERS_DOLGN on R_USERS_DOLGN.ID_KD=d_ext_uslug_napr_zag.NAPR_DOCTOR_KD_ID 
     left outer join users on users.id_user=d_ext_uslug_napr_zag.napr_doctor_user_id                  
     left outer join tab_msk on tab_msk.id_msk=patients.msk                                           
     left outer join tab_place on tab_place.id_place=d_ext_uslug_napr_zag.napr_place_id               
     left outer join tab_struct_obos_unit on tab_struct_obos_unit.lpu_id=d_ext_uslug_napr_zag.from_lpu_id 
     left outer join tab_struct_obos_unit TSOU1 on TSOU1.id_obos_unit=tab_place.obos_unit_id          
     left outer join d_diagn on d_diagn.id_doc = d_ext_uslug_napr_zag.id_doc                          
     left outer join med_kart on med_kart.pac_id = patients.id_pac 
     and med_kart.dt_coming>=:O_BEG and med_kart.dt_coming<=:O_END 
     left outer join d_dvig on d_dvig.med_kart=med_kart.id_kart and d_dvig.type_dvig=31                   
      left outer join  tab_place_param on tab_place_param.id_place=d_dvig.target_place                    
           and tab_place_param.dab<=:O_BEG and tab_place_param.dae>:O_BEG                                 
     left outer join tab_struct_place_har on tab_struct_place_har.place_id=tab_place.id_place         
     left outer join tab_lpu on tab_lpu.lpu_code= med_kart.napr_lpu 
     where d_ext_uslug_napr_zag.IS_INCOMING=0 and d_ext_uslug_napr_zag.pay_id=1  --IS_INCOMING=0 только исходящие,      
     and d_ext_uslug_napr_zag.date_doc>=:O_BEG and d_ext_uslug_napr_zag.date_doc<=:O_END

    Обратите внимание на tab_place_param
    Также стоит отметить, что в таблице d_ext_uslug_napr_zag имеются поля med_kart_id, lpu_id, obos_unit_id.
    Ещё: obos_unit — на самом деле подразделение lpu, их может быть несколько. Автор почему-то об этом не подумал.

    tucvbif, 29 Апреля 2015

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

    −162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    CREATE TABLE `invait` (
    	`invait` VARCHAR(128) NOT NULL COLLATE 'utf8_general_ci',
    	`vladelec_id` VARCHAR(128) NOT NULL COLLATE 'utf8_general_ci',
    	`klient_id` VARCHAR(128) NOT NULL COLLATE 'utf8_general_ci',
    	`datavr` TEXT NOT NULL COLLATE 'utf8_general_ci',
    	`dohod` VARCHAR(1024) NOT NULL COLLATE 'utf8_general_ci',
    	`idinv` INT(11) NOT NULL AUTO_INCREMENT
    )
    COLLATE='latin1_swedish_ci'
    ENGINE=MyISAM
    AUTO_INCREMENT=79;

    имена полей прекрасны

    podvzbzdnul, 20 Апреля 2015

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

    −161

    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
    $iq = tep_db_query('/* Вывод детальной информации по заданному неоригинальному изделию (ART_ID) */
    					/* Общая информация об изделии */
    					/*	ART_ARTICLE_NR - Номер артикула */
    					/*	SUP_BRAND - Название производителя изделия */
    					/*	ART_COMPLETE_DES_TEXT - Описание изделия */
    					SELECT
    						ART_ID,
    						ART_ARTICLE_NR,
    						ART_SEARCH_NR,
    						SUP_BRAND,
    						TD_DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT,
    						products_id,
    						products_price,
    						products_quantity
    					FROM
    					   TD_ARTICLES
    						INNER JOIN TD_DESIGNATIONS ON TD_DESIGNATIONS.DES_ID = ART_COMPLETE_DES_ID
    						INNER JOIN TD_DES_TEXTS ON TD_DES_TEXTS.TEX_ID = TD_DESIGNATIONS.DES_TEX_ID
    						INNER JOIN TD_SUPPLIERS ON SUP_ID = ART_SUP_ID
    					    JOIN products ON products_search_art = ART_SEARCH_NR
    					    JOIN td_suppliers_to_price ON products_brand = stp_price_brand AND products_price_id = stp_price_id AND ART_SUP_ID = stp_td_sup_id
    					WHERE
    						ART_ID = '.$art['LA_ART_ID'].' AND
    						TD_DESIGNATIONS.DES_LNG_ID = 16; ');

    "Отправлю ка я в СУБД немного комментариев, чтобы ему было проще разобраться что тут происходит"

    CyberKiller, 12 Апреля 2015

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

    −170

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    CREATE TABLE `static_answers` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `question_id` int(11) unsigned NOT NULL,
      `title` varchar(255) NOT NULL,
      `is_correct` enum('0','1') NOT NULL,
      `created_at` int(11) unsigned NOT NULL,
      `updated_at` int(11) unsigned NOT NULL,
      `hits` int(10) unsigned NOT NULL DEFAULT '0',
    ...
    )

    Смотрим объявление поля is_correct
    ... Взорвали мозг пытаясь понять, почему: ожидаемый chance = (!фактический chance) в запросе:
    SELECT
    a.`id`, is_correct, IF(`is_correct`, 1, 0) chance
    FROM `static_answers` a
    WHERE q.`id` = 3268

    dwsVad, 12 Марта 2015

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