如何以人类可读的形式将列值从varbinary(max)
转换为varchar
?
答案 0 :(得分:122)
答案 1 :(得分:76)
“将varbinary
转换为varchar
”可能意味着不同的事情。
如果varbinary是SQL Server中字符串的二进制表示形式(例如通过直接转换为varbinary
或从DecryptByPassPhrase
或DECOMPRESS
函数转换为{}返回),则可以{{ 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)