varbinary到SQL Server上的字符串

时间:2010-07-20 12:42:36

标签: sql sql-server sql-server-2005 tsql

如何以人类可读的形式将列值从varbinary(max)转换为varchar

7 个答案:

答案 0 :(得分:122)

以下表达式对我有用:

SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);

Here是关于样式选择的更多细节(第三个参数)。

答案 1 :(得分:76)

“将varbinary转换为varchar”可能意味着不同的事情。

如果varbinary是SQL Server中字符串的二进制表示形式(例如通过直接转换为varbinary或从DecryptByPassPhraseDECOMPRESS函数转换为{}返回),则可以{{ 1}}它

CAST

这相当于使用样式参数declare @b varbinary(max) set @b = 0x5468697320697320612074657374 select cast(@b as varchar(max)) /*Returns "This is a test"*/ 的{​​{1}}。

CONVERT

其他样式参数可与0一起用于不同的要求,如其他答案中所述。

答案 2 :(得分:42)

实际上最好的答案是

SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);

使用“2”会在0x开头切断“varbinary”。

答案 3 :(得分:13)

试试这个

SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)

答案 4 :(得分:0)

对于VARBINARY(MAX)列,我必须使用NVARCHAR(MAX)

cast(Content as nvarchar(max))

CONVERT(NVARCHAR(MAX), Content, 0)

VARCHAR(MAX)没有显示整个值

答案 5 :(得分:0)

我尝试过,它对我有用:

declare @b2 VARBINARY(MAX) 
set @b2 = 0x54006800690073002000690073002000610020007400650073007400
SELECT CONVERT(nVARCHAR(1000), @b2, 0);

答案 6 :(得分:0)

在努力奋斗时,请尝试以下内容

ListView

参考:original post