1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
With Ma_cte as (
SELECT h.FORMULE ,
Case
When Position( ',x',h.FORMULE) <>0
Then (
( CAST(SubString(h.FORMULE From (Position( '(S' In h.FORMULE ) +2)
For ( Position( ',' In h.FORMULE ) - (Position( '(S' In h.FORMULE ) +2 )) ) AS INTEGER) -4 ) *8
+ Cast( Case
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'F' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'E' ) Then 1
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'D' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'C' ) Then 2
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'B' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'A' ) Then 1
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '9' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '8' ) Then 3
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '7' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '6' ) Then 1
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '5' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '4' ) Then 2
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '3' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '2' ) Then 1
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +3)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '1' ) Then 0
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'F' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'E' ) Then 5
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'D' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'C' ) Then 6
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'B' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = 'A' ) Then 5
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '9' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '8' ) Then 7
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '7' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '6' ) Then 5
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '5' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '4' ) Then 6
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '3' ) Then 4
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '2' ) Then 5
When ( SubString( h.FORMULE From (Position(',' In h.FORMULE ) +2)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +3 )) ) = '1' ) Then 4
end
AS INTEGER ) )
Else (
( CAST(SubString(h.FORMULE From (Position( '(S' In h.FORMULE ) +2)
For ( Position( ',' In h.FORMULE ) - (Position( '(S' In h.FORMULE ) +2 )) ) AS INTEGER) -4) *8
+ Case
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),1) <>0 ) Then 0
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),2) <>0 ) Then 1
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),4) <>0 ) Then 2
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),8) <>0 ) Then 3
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),16) <>0 ) Then 4
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),32) <>0 ) Then 5
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),64) <>0 ) Then 6
When ( Bin_And(CAST(SubString(h.FORMULE From (Position( ',' In h.FORMULE ) +1)
For ( Position( ')' In h.FORMULE ) - (Position( ',' In h.FORMULE ) +1 )) ) AS INTEGER),128) <>0 ) Then 7
end )
End As Bit_Info
FROM SIGNAUX h
)
select *
from ma_cte
where Bit_Info ... |
Partager