sql - 获取 SQL Server 中 UTF-8 编码字符串的 MD5 哈希值
问题描述
据我了解,SQL Server 提供了两种用于存储字符串的数据类型——用于 8 位 ISO 编码的 VARCHAR 和用于 UTF-16 的 NVARCHAR。问题是我需要使用 SELECT 来检索 UTF-8 编码字符串的 MD5。
这是必需的,因此我不会从服务器读取任何个人数据以存储在仓库中,但我仍然会为每个(例如电子邮件地址)获得一个唯一值,以与来自其他使用正确的来源的数据相匹配UTF-8。
假设我们有以下字符串:
' SIRIO SOCIETÀ COOPERATIVA ' 存储在第 1 行名为“nomeCompleto”的 VARCHAR 列中。
SELECT hashbytes('MD5',nomeCompleto) FROM sampleTable WHERE row_id = 1
返回以下字节
0xF5F3DA4E538693D68C27F7B24948D348
在 Unicode 中:
SELECT hashbytes('MD5',CONVERT(NVARCHAR(max),nomeCompleto))
当我将它转换为 NVARCHAR 时,我得到:
0x7FDCB5E7E91D01177B124F1A5BE218B1
问题是,如果相同的字符串来自使用 UTF-8 的某个 API 或另一个 RDMBS,并且我对其进行 md5 编辑,我宁愿得到:
0x27380195AA7488AE0CD5CD96A13932B3
如何在不编写自定义函数等的情况下从 SQL 服务器检索第三个值?
解决方案
推荐阅读
- docker - 添加 arg 后 Docker 构建运行两次
- tensorflow - Tensorflow 服务器是否提供/支持非基于 TensorFlow 的库,如 scikit-learn?
- python - 使用 pandas 从 2 列中提取现有和不存在的值
- javascript - 如何结合ant-design复选框和表格?
- mysql - 哪个查询更优化?
- maven - 什么是环境变量`locktt`?
- python - 如何获取拼接图像相对于原始图像的坐标
- python-3.x - 如何从python中的超链接下载zip文件
- flask-sqlalchemy - Deleting the matching rows from the table
- elasticsearch - Elasticsearch 中的小写文件名字符串