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

    −162

    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
    RIGHT(
      CAST( LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2*2*2*2) as bit)))
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2) AS BIT)))
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2) AS BIT))) +LTRIM(STR(CAST(TRIP_NO&1 AS BIT))) AS VARCHAR ),
        
    len(
    
    CAST( LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2*2*2*2) as bit)))
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2*2) AS BIT)))
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2*2) AS BIT)))
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2*2*2) AS BIT)))
     +LTRIM(STR(CAST(TRIP_NO&(2*2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2*2) AS BIT))) 
    +LTRIM(STR(CAST(TRIP_NO&(2) AS BIT))) +LTRIM(STR(CAST(TRIP_NO&1 AS BIT))) AS VARCHAR )
    )
    -
    cast(
    CHARINDEX('1',
    CAST(
    LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2*2*2*2) as bit)))+
    LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2*2*2) as bit)))
    +LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2*2) as bit)))
    +LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2*2) as bit)))
    +LTRIM(STR(cast(trip_no&(2*2*2*2*2*2*2*2*2) as bit)))
    ..................................................................................................................................................................................
              +    2*t02.bin
              +    4*t03.bin
              +    8*t04.bin
              +   16*t05.bin
              +   32*t06.bin
              +   64*t07.bin
              +  128*t08.bin
              +  256*t09.bin
              +  512*t10.bin
              + 1024*t11.bin
              + 2048*t12.bin
              + 4096*t13.bin
              + 8192*t14.bin
              +16384*t15.bin
              +32768*t16.bin
             ) AS n_10
           , (
              CAST(t16.bin AS CHAR(1))
             +CAST(t15.bin AS CHAR(1))
             +CAST(t14.bin AS CHAR(1))
             +CAST(t13.bin AS CHAR(1))
             +CAST(t12.bin AS CHAR(1))
             +CAST(t11.bin AS CHAR(1))
             +CAST(t10.bin AS CHAR(1))
             +CAST(t09.bin AS CHAR(1))
             +CAST(t08.bin AS CHAR(1))
             +CAST(t07.bin AS CHAR(1))
             +CAST(t06.bin AS CHAR(1))
             +CAST(t05.bin AS CHAR(1))
             +CAST(t04.bin AS CHAR(1))
    ......................................................................................................................................................................
    100000000000000*        (trip_no/2/2/2/2/2         /2/2/2/2/2/2/2/2/2%2)+
      10000000000000*      (trip_no/2/2/2/2/2/2       /2/2/2/2/2/2/2%2)+
      1000000000000*     (trip_no/2/2/2/2/2/2/      2/2/2/2/2/2%2)+
      100000000000*     (trip_no  /2/2/2/2/2/      2/2/2/2/2/2%2)+
       10000000000*   (trip_no    /2/2/2/2/2/     2/2/2/2/2%2)+
       1000000000*   (trip_no      /2/2/2/2/     2/2/2/2/2%2)+
        100000000*  (trip_no        /2/2/2/2    /2/2/2/2%2)+
        10000000*  (trip_no          /2/2/2/    2/2/2/2%2)+
         1000000* (trip_no           /2/2/2/   2/2/2%2)+
          100000* (trip_no            /2/2/2/  2/2%2)+
           10000* (trip_no              /2/2/  2/2%2)+
             1000*(trip_no               /2/2/ 2%2)+
              100*(trip_no                  /2/2%2)+
               10*(trip_no                     /2%2)+
                  1*(trip_no                       %2)
    ..................................................................................................................................................................
    		CASE WHEN trip_no/32768>0 		THEN CAST((trip_no & 32768)/32768	AS varchar)ELSE '' END +
    		CASE WHEN trip_no/16384>0 		THEN CAST((trip_no & 16384)/16384   AS varchar)ELSE '' END +
    		CASE WHEN trip_no/8192>0 		THEN CAST((trip_no & 8192)/8192		AS varchar)ELSE ''END+
    		CASE WHEN trip_no/4096>0 		THEN CAST((trip_no & 4096)/4096		AS varchar)ELSE ''END+
    		CASE WHEN trip_no/2048>0 		THEN CAST((trip_no & 2048)/2048		AS varchar)ELSE ''END+
    		CASE WHEN trip_no/1024>0 		THEN CAST((trip_no & 1024)/1024		AS varchar)ELSE ''END+
    		CASE WHEN trip_no/512>0 		THEN CAST((trip_no & 512)/512		AS varchar)ELSE ''END+
    ..............................................................................................................................
    --И еще с десяток таких же

    Еще выдержки из вариатов с sql-ex.
    Задача:Предполагая, что не существует номера рейса большего 65535, вывести номер рейса и его представление в двоичной системе счисления (без ведущих нулей)

    Как всегда обращаю внимание, что выложенны только части вариантов решения и они не могут быть поданы за свои кем-либо.

    Запостил: crastinus, 11 Июня 2013

    Комментарии (31) RSS

    Добавить комментарий