|
|
Archives of the TeradataForum
Message Posted: Thu, 09 Sep 2004 @ 06:35:48 GMT
Subj: | | Re: Converting HEX to ASCII |
|
From: | | Dieter Noeth |
Dennis Calkins wrote:
| HASHBUCKET is only defined for Values < 65536 since it's purpose is to return the UPPER 2 bytes of the ROWHASH. | |
| Teradata only support 65563 hashbuckets. Values > 65536 will be truncated and only return a Value which is MOD 65536. | |
/*** BYTE(4) --> Unsigned (DEC(18,0))/Signed (INT) numeric value ***/
SELECT
HASHBUCKET(b) * 65536. +
HASHBUCKET(SUBSTR(b,3,2) (BYTE(4))) AS UnsignedValue,
HASHBUCKET(b) * 65536. +
HASHBUCKET(SUBSTR(b,3,2) (BYTE(4))) -
(CASE WHEN HASHBUCKET(b (BYTE(4))) / 32768 = 0 THEN 0 ELSE 4294967296
END) (INT) AS SignedValue,
(HASHBUCKET(b) * 65536. +
HASHBUCKET(SUBSTR(b,3,2) (BYTE(4))) -
HASHBUCKET(b (BYTE(4))) / 32768 * 4294967296) (INT) AS SignedValue2
FROM
(SELECT '07D307D3'xb AS b) dt
;
Dieter
| |