我有一个表,其中有一列二进制文字转换为字符串,我需要将其与包含与binary(16)相同值的表相关联
根表字符串值'2F774578C33011E880D80050569C29CA'
表值我需要加入0x2F774578C33011E880D80050569C29CA
有没有一种方法可以将根表转换为二进制文件,方法是简单地将0x添加到字符串,然后为字符串声明二进制的文字值?或将二进制文件转换为根目录中包含的字符串。
我没有运气就尝试了以下方法:
DECLARE @jobIDBinary Binary(16)
DECLARE @jobString Nvarchar(50)
SET @jobIDBinary = '0x'+
(SELECT TOP (1) JobId
FROM [Record])
错误:不允许从数据类型nvarchar隐式转换为二进制。使用CONVERT函数运行此查询。
我还尝试了另一种转换方式:
DECLARE @convo varchar(max)
SET @convo = (SELECT TOP (1)
[BinaryJobID]
FROM [GAPClaims].[dbo].[Record2]
WHERE binaryjobId IS NOT NULL )
Results =,]óJ¾¶‡Á§\ê€
提前谢谢。
答案 0 :(得分:1)
您可以将a_split
转换为varbinary
,然后加入(或根据您的说明进行关联)。
varchar
那么,对你来说:
declare @v varbinary(16) = 0x2F774578C33011E880D80050569C29CA
select @v, convert(varchar(256), @v,2)
declare @s varchar(256) = '2F774578C33011E880D80050569C29CA'
select @s, convert(varbinary(16),@s,2)
有关在 DECLARE @convo varchar(max)
SET @convo = (SELECT TOP (1)
convert(varchar(256),[BinaryJobID],2)
FROM [GAPClaims].[dbo].[Record2]
WHERE binaryjobId IS NOT NULL )
语句中为什么使用2
的原因,请参见Binary section in the docs。
答案 1 :(得分:0)
尝试将字符串转换为二进制:
CONVERT(BINARY(16), @jobString)
和反向:
CONVERT(VARCHAR(max), @jobBinary)