1

Temat: MS SQL ekwiwalent: Cast( Reverse(0D0A......) as varbinary(max)) -

Dotychczas na MS SQL używałem takiej składni:

.... Cast( Reverse(0D0A5B54657374315D0D0A313D50696F726B6F0D0A323D506) as varbinary(max))

Jak osiągnąć taki sam efekt w PostgreSQL ?

mLipok

2

Odp: MS SQL ekwiwalent: Cast( Reverse(0D0A......) as varbinary(max)) -

jeśli dobrze zrozumiałem chcesz odwrócić bitowo jakąś dużą liczbę

Poniżej przykład z PostgreSQL

select reverse((liczba::bit(16))::text)::BIT(16)::BIGINT AS LICZBA_REVERSE ,reverse((liczba::bit(16))::text)::bit(12) AS BITE_REVERSE,liczba::bit(16) AS LICZBA_BITOWO,LICZBA
from (values (1::int)) d(liczba)

wynik:
LICZBA_REVERSE | BITE_REVERSE   | LICZBA_BITOWO       | LICZBA
32768                  |  100000000000 |  0000000000000001 | 1

3

Odp: MS SQL ekwiwalent: Cast( Reverse(0D0A......) as varbinary(max)) -

4

Odp: MS SQL ekwiwalent: Cast( Reverse(0D0A......) as varbinary(max)) -

Zerknij na poniższy przykład. Oczywiście nie musisz używać reverse ale dla zachowania twoich wymagań zostawiłem tą funkcje w zapytaniu

with d (ciag) as (values(E'123456789\n\tA'),(E'\x41\x42\x43\x44\x0c'))
,db as (select  ciag,decode(reverse(ciag),'escape') as binarnie from d)
select ciag,binarnie,reverse(encode(binarnie,'escape')) as rozkodowane from db;