- 1
- 2
- 3
- 4
- 5
BEGIN
select count(*) INTO var FROM table_name;
EXCEPTION WHEN OTHERS THEN
var:=0;
END;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−84
BEGIN
select count(*) INTO var FROM table_name;
EXCEPTION WHEN OTHERS THEN
var:=0;
END;
Если что-то пойдет не так...
P.S.: count() всегда возвращает какое-либо значение. Ошибке не откуда взяться.
−176
and (ss_1<>'SS0001' or ss_1<>'SS0002' or ss_1<>'SS0010')
Сегодня на продакшене было обнаружено гениальное выражение в одном из запросов.
−160
ALTER TABLE db.table ADD CONSTRAINT cu_contents UNIQUE (contents(128));
ALTER TABLE db.table DROP INDEX cu_contents;
Создал констрейнт, удал индекс. Загадки Майсиквела.
−163
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
Вот такой пиздец мне надо сопровождать и дописывать. Судя по говённости кода, по уёбскому названию переменных, по дико ебланской манере писать код - аффтар из Дульфистов, только у них может получиться настолько уёбский код.
−161
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 нормальная форма (_*_)
−164
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)
−161
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, их может быть несколько. Автор почему-то об этом не подумал.
−162
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;
имена полей прекрасны
−161
$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; ');
"Отправлю ка я в СУБД немного комментариев, чтобы ему было проще разобраться что тут происходит"
−170
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