gpt4 book ai didi

sql-server - 如何在 SQL Server varbinary(max) 字段中搜索字节序列?

转载 作者:行者123 更新时间:2023-12-04 02:42:03 26 4
gpt4 key购买 nike

我正在尝试在 SQL Server 2012 上编写一个查询,该查询将返回包含指定字节序列的 varbinary(max) 列。我能够通过将 varbinary 字段转换为 varchar 并使用 LIKE 的查询来做到这一点:

SELECT * FROM foo
WHERE CONVERT(varchar(max), myvarbincolumn) LIKE
'%' + CONVERT(varchar(max), 0x626C6168) + '%'

其中“0x626C6168”是我的目标字节序列。不幸的是,这仅在该字段不包含任何值为零 (0x00) 的字节并且这些字节在我的数据中很常见时才有效。我可以采用一种不同的方法来处理包含零值字节的值吗?

最佳答案

如果您使用二进制排序规则,它应该可以工作。

WITH foo(myvarbincolumn) AS
(
SELECT 0x00626C616800
)
SELECT *
FROM foo
WHERE CONVERT(VARCHAR(max), myvarbincolumn) COLLATE Latin1_General_100_BIN2
LIKE '%' + CONVERT(VARCHAR(max), 0x626C6168) + '%'

如果在旧版本的 SQL Server 上,您可能需要(比如说)Latin1_General_BIN

关于sql-server - 如何在 SQL Server varbinary(max) 字段中搜索字节序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com