1. Список говнокодов пользователя DBdev

    Всего: 10

  2. SQL / Говнокод #16052

    −114

    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
    select 
    
    row_number() over (order by count(*) desc) r, 
    
    case when t719.f7171 is null and t719.f7201 is null then 'За поданням
    голови ОВК, капітана судна, керівн. полярної станції України' 
    
                when t719.f7171 is not null  then t717.name1 
    
                when t719.f7201 is not null  then t720.f7202||'
    '||t720.f7203||' '||t720.f7204
    
           end t021f02, 
    
            count(*) count1
    
    from  t719,
    
          t066,
    
          t714,
    
          v1_t717 t717,
    
          t720
    
    where t719.t001f01=PT001F01 and
    
          t719.t001f01=t066.t001f01 and
    
          t719.f7331=t066.f7331 and
    
          t719.f7141=t066.f7141 and
    
          t719.f7191=t066.f7191 and
    
          t066.T066F02 is not null and
    
          t066.T066F03 is null and
    
          t719.t001f01=t714.t001f01 and
    
          t719.f7331=t714.f7331 and
    
          t719.f7141=t714.f7141 and
    
          t714.f71480 is null and
    
          t719.f7171=t717.f7171(+) and
    
          t719.t001f01=t717.t001f01(+) and
    
          t719.f7201=t720.f7201(+) and
    
          t719.t001f01=t720.t001f01(+)
    
    group by case when t719.f7171 is null and t719.f7201 is null then 'За
    поданням голови ОВК, капітана судна, керівн. полярної станції України' 
    
                  when t719.f7171 is not null  then t717.name1 
    
                  when t719.f7201 is not null  then t720.f7202||'
    '||t720.f7203||' '||t720.f7204
    
             end
    
    order by count(*) desc, 1;

    Оттуда же.

    Ну и как такое можно сапортить?

    DBdev, 24 Мая 2014

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

    −117

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    Т.е. наполнение таблицы T005 будет таким: 
    
    T001F01 | T005F01 | .... 
    ------------------------ 
       702  |    1    | .... 
       702  |    2    | .... 
    ............................. 
       703  |    1    | .... 
       703  |    2    | ....

    Из почтовой переписки, слитой со взломанного ЦВК Украины.

    Ну вот что это за привычка такая, в гос. конторах - шифровать название таблиц и полей?
    А на аппликейшн уровне давать вменяемые имена.
    Уже не в первый раз встречаю - бугурт вызывает нереальный.
    Кто-то может назвать хоть один бенефит такого подхода? Чтобы враг не догадался?

    DBdev, 24 Мая 2014

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

    −172

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    select cast(
          substring(cast(active_start_date as varchar(8)), 1, 4) + '-' 
          + substring(cast(active_start_date as varchar(8)), 5, 2) + '-' 
          + substring(cast(active_start_date as varchar(8)), 7, 2) + ' '
          + substring(RIGHT('000000'+cast(active_start_time as varchar(6)), 6), 1, 2) + ':' 
          + substring(RIGHT('000000'+cast(active_start_time as varchar(6)), 6), 3, 2) + ':' 
          + substring(RIGHT('000000'+cast(active_start_time as varchar(6)), 6), 5, 2)  
          as datetime) ExecutionDateTime
    from sysschedules

    Майкрософт, зачем ты хранишь даты и время в integer? :(

    DBdev, 03 Июля 2013

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

    −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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    SELECT TOP 100 Col008, Col012, 
            CAST(
                   CASE WHEN SUBSTRING(Col008, 9, 1) IN ('å', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R')
                           THEN '-' ELSE '' END +
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                           Col008, 'æ', '0'), 'A', '1'), 'B', '2'), 'C', '3'), 'D', '4'), 
                                   'E', '5'), 'F', '6'), 'G', '7'), 'H', '8'), 'I', '9'), 
                                   'å', '0'), 'J', '1'), 'K', '2'), 'L', '3'), 'M', '4'), 
                                   'N', '5'), 'O', '6'), 'P', '7'), 'Q', '8'), 'R', '9') 
            AS INT) AS Col008num,
    
            CAST(
                   CASE WHEN SUBSTRING(Col012, 7, 1) IN ('å', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R')
                           THEN '-' ELSE '' END +
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                           Col012, 'æ', '0'), 'A', '1'), 'B', '2'), 'C', '3'), 'D', '4'), 
                                   'E', '5'), 'F', '6'), 'G', '7'), 'H', '8'), 'I', '9'), 
                                   'å', '0'), 'J', '1'), 'K', '2'), 'L', '3'), 'M', '4'), 
                                   'N', '5'), 'O', '6'), 'P', '7'), 'Q', '8'), 'R', '9') 
            AS INT) AS Col012num
    
    FROM dbo.Source_Table

    Да за что ж мне такое?

    DBdev, 14 Июня 2013

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

    −170

    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
    DECLARE @Schema_Name nvarchar(128)
    DECLARE @Table_Name nvarchar(128)
    
    SET @Schema_Name='dbo'
    SET @Table_Name='TestTable'
    
    declare @count int
    set @count=0
    
    
    SELECT @count=@count+count(NAME)
    FROM syscolumns
    WHERE SCHEMA_NAME( OBJECTPROPERTY( ID, 'SCHEMAID' ))=@Schema_Name and OBJECT_NAME(id) = @Table_Name AND COLUMNPROPERTY(id, name, 'IsIdentity') = 1
    
    if @count>0 
    begin
    SELECT '['+name+']' as Test_Result, convert(smallint,0) as Severity 
    FROM syscolumns
    WHERE SCHEMA_NAME( OBJECTPROPERTY( ID, 'SCHEMAID' ))=@Schema_Name and OBJECT_NAME(id) = @Table_Name AND COLUMNPROPERTY(id, name, 'IsIdentity') = 1
    
    end 
    else
    SELECT 'No identity insert column' as Test_Result, convert(smallint,100) as Severity

    MS SQL Server 2005
    Задание: проверить, есть ли у заданной таблички identity_insert колонка.

    DBdev, 25 Января 2013

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

    −126

    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
    SELECT TOP 1
    Fak_Beholdning_Id,
    ETL_Batch_ID,
    ETL_Kilde_ID
    INTO #Delete
    FROM 
    dv.FAK_Beholdning
    WHERE  ETL_Batch_ID = 20120522
    AND ETL_Kilde_Id = 678
    AND ETL_Lastefrekvens_txt = 'Daglig'
    
    IF (SELECT count(*) FROM #Delete) = 1
    
    BEGIN
    DELETE FROM dv.Fak_Beholdning 
    WHERE  ETL_Batch_ID = (Select ETL_Batch_ID FROM #Delete)
    AND ETL_Kilde_Id = (Select ETL_Kilde_ID FROM #Delete)
    AND ETL_Lastefrekvens_txt = 'Daglig'
    END
    
    DROP TABLE #Delete

    Удаление с проверкой, чо...
    *рукалицо*

    DBdev, 15 Августа 2012

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

    −116

    1. 1
    2. 2
    DECLARE @SysDatoFull datetime
    SET @SysDatoFull = CAST(YEAR(getdate()) as varchar) + RIGHT('00'+CAST(MONTH(getdate()) as varchar), 2) + RIGHT('00'+CAST(DAY(getdate()) as varchar), 2)

    SQL, даты... nuff said
    Вспомнился http://govnokod.ru/9211. Может есть где-то специальное учебное заведение, где обучают таким техникам?

    DBdev, 12 Июля 2012

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

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    CREATE TABLE [dv].[FAK_Beholdning](
          [Fak_Beholdning_Id] [int] IDENTITY(1,1) NOT NULL,
          /* list of 200 columns */
    ) ON [PRIMARY]
    
    SET ANSI_PADDING OFF
    ALTER TABLE [dv].[FAK_Beholdning] ADD [SRC_Produkt_Kontotypekode_kde] [varchar](20) NULL
    ALTER TABLE [dv].[FAK_Beholdning] ADD [SRC_Kilde_kde] [varchar](20) NULL
    SET ANSI_PADDING ON
    
    ALTER TABLE [dv].[FAK_Beholdning] ADD [SRC_Avtaletypekode_Undergruppe_kde] [varchar](20) NULL
    /* list of 20 columns */

    T-SQL.
    Скандинавские коллеги не перестают радовать.
    Кто должен делать для данных RTRIM? Конечно же БД!
    ЗЫЖ http://msdn.microsoft.com/ru-ru/library/ms187403(v=sql.90).aspx

    DBdev, 13 Марта 2012

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

    −116

    1. 1
    SELECT * FROM SomeTable WHERE Column1 = '%SearchWord%' AND Column2 = '%AnotherSearchWord%' AND Column3 = '%%' AND Column4 = '%%' AND Column5 = '%%'

    Коллега написал поиск на Reporting Services, в таблице есть несколько текстовых полей, пользователю предлагается заполнить несколько полей ввода. В представленном выше примере пользователь заполнил 2 поля из 5 и вот такой замечательный запрос идет на сервер.

    DBdev, 03 Февраля 2012

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

    −113

    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
    with mycte as
    (
    
    select dateadd(dd, 1,@dato1)as  Dato
    
    union all
    select Dato + 1
    from    mycte    
    where   Dato + 1 <= @dato2
    )
    select count(Dato) as antall
    from    mycte
    where Dato <=@dato2
    OPTION (MAXRECURSION 0)

    Суровые нордические ребята пытаются найти разницу в днях между двумя датами с помощью рекурсии.
    И ведь dateadd они знают, а про datediff нет.
    Так же веселит OPTION (MAXRECURSION 0), который обычно устанавливают с параметром отличным от 0 в тех случаях, когда рекурсия убегает в бесконечность, чтобы хоть как-то ограничить ее. Видимо, эхо дебаггинга сего замечательного кода.

    DBdev, 23 Января 2012

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