【问题标题】:How to convert varchar to varbinary where each char is followed by a null character?如何将 varchar 转换为 varbinary,其中每个 char 后跟一个空字符?
【发布时间】:2020-10-28 12:47:02
【问题描述】:

在 SQL Server 中,以下查询

SELECT CONVERT(VARBINARY,'1234');

返回0x31323334

为了返回0x3100320033003400,我可以在查询中做什么?

到目前为止,我可以在 C++ 中执行此操作,然后在查询中使用它,但我想知道是否有更简洁的方法来执行此操作(即将原始字符串放入查询中并让 SQL 完成工作的方法)。

也许有一种方法可以告诉 SQL '1234' 中的每个字符都必须被视为一个两字节字符。也许有一种分裂和加入的方法。我找不到路,这是我目前尝试过的两种方法。

【问题讨论】:

    标签: sql-server type-conversion


    【解决方案1】:

    将其转换为nvarchar,然后转换为varbinary,因为nvarchar 使用双字节来存储字符:

    SELECT CONVERT(VARBINARY(8),CONVERT(nvarchar(4),'1234'));
    

    或者,如果它始终是文字,只需在其前面加上 nvarchar 符号字符 (N)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 2022-01-06
      • 2015-01-03
      相关资源
      最近更新 更多