Привет, All

Вот такой вот запрос:
==========================
SELECT
  M.HASHKEY, COUNT(1)
FROM (
  select hash('р-р д/ин. 0 мг шприц 0,0 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 10 мг шприц 0,1 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 20 мг шприц 0,2 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 30 мг шприц 0,3 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 40 мг шприц 0,4 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 50 мг шприц 0,5 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 60 мг шприц 0,6 мл') as hashkey from rdb$database
  union all
  select hash('р-р д/ин. 70 мг шприц 0,7 мл') as hashkey from rdb$database
  union all
select hash('р-р д/ин. 80 мг шприц 0,8 мл') as hashkey from rdb$database) AS M
GROUP BY 1
============================
Выдаст наличие совпадений по значению хеша, хотя строки все отличаются.
Я понимаю, что вероятность совпадения значений хеша при разных входных данных допускается, но не такая же большая.

Какой алгоритм для получения хеша используется и есть ли возможность выбирать алгоритмы, - ну например: разные алгоритмы - разные названия функций, или все-таки UDF нам поможет? :)

--
Версия FB 2.5.0.26074

Ответить