Может ли Snowflake преобразовать целочисленный IP-адрес в строковый IP-адрес? - PullRequest
1 голос
/ 11 октября 2019

(Отправка от имени пользователя Snowflake)


Предлагает ли Snowflake функцию, аналогичную функции INET_NTOA () MySQL?

https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_inet-ntoa

I 'Я хотел бы перевести целочисленную нотацию IP в строки типа:

SELECT INET_NTOA(167773449);

-> '10.0.5.9'

Есть какие-нибудь рекомендации? Спасибо!

1 Ответ

2 голосов
/ 13 октября 2019
select BITAND(BITSHIFTRIGHT(ip_value,24),255)::text || '.' 
  || BITAND(BITSHIFTRIGHT(ip_value,16),255)::text || '.' 
  || BITAND(BITSHIFTRIGHT(ip_value,8),255)::text || '.'
  || BITAND(ip_value,255)::text as ip_text
FROM (
  SELECT 167773449 AS ip_value
);

, учитывая, что это просто битовое смещение, побитовые выражения здесь, чтобы помочь

...