先頭の接頭辞LIKE比較では、gbnの答えが適用されます。
(@gbnからの借入スキーマおよびサンプルデータ)
DECLARE @foo TABLE (TestData varbinary(100) NOT NULL);
INSERT @foo (TestData) VALUES
(0x0001DC780C0030373156635D0C00B8),
(0x0001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA),
(0x0001AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
(0x0301DC780C0030373156385D0C006499C401009A0600AC),
(0x0301FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF),
(0x0302000000000000000000000000000000000000000000);
SELECT *
FROM @foo
WHERE CAST(TestData AS VARCHAR(MAX)) LIKE '%'+CAST(0xDC78 AS VARCHAR(MAX))+'%';
をあなたはVARCHARにバイナリ値をキャストすると、すべてのことを次のように文字列検索の等価LIKE リアルためには、LIKEを使用することができます生のビットを文字列ストリームとして扱いますか?それは魔法のように文字列表現に変換されません。バイト0×41または序65は、標準的なラテン語のコードページでは「A」であるので
select cast(0x41 as varchar(10)); -- Result: A
select cast(0x414263 as varchar(10)); -- Result: ABc
:以下の例を考えてみましょう。
2つのクエリはまったく同じですか?また、2面ワイルドカードLIKEを行うための説明とコードを追加しました。 – RichardTheKiwi