generateUUIDv4() AS uuid,
lower(hex(reverse(reinterpretAsString(uuid)))) AS str,
reinterpretAsUUID(reverse(unhex(str))) AS uuid2
SELECT uuid, str, uuid2;
зачем это WITH generateUUIDv4() AS uuid, lower(hex(UUIDStringToNum(toString(uuid)))) AS str SELECT uuid, str Query id: 051bcc01-c0d2-453c-b73d-36966080ea87 ┌─uuid─────────────────────────────────┬─str──────────────────────────────┐ │ 0d8034e4-3d82-4542-9f5f-0ede1167daff │ 0d8034e43d8245429f5f0ede1167daff │ └──────────────────────────────────────┴──────────────────────────────────┘
Мне надо обрезать последний байт в ююиде. Чтобы в твоем случае получилось 0d8034e43d8245429f5f0ede1167da (без ff в конце), а потом это в двоичное представление с помощью unhex('0d8034e43d8245429f5f0ede1167da') и в поле FixedString (15). Если делать with toUUID('0d8034e4-3d82-4542-9f5f-0ede1167daff') as uuid select hex(substring(reinterpretAsFixedString(uuid), 1, 15)); То обрезаются байты в середине ююида а не в конце, так как в ююиде big индиан, а в строках литл
with toUUID('0d8034e4-3d82-4542-9f5f-0ede1167daff') as uuid select hex(substring(UUIDStringToNum(toString(uuid)), 1, 15)); ;
Да, отлично, спасибо)
Обсуждают сегодня