【问题标题】:SQL: Get value at index in binary valueSQL:以二进制值获取索引处的值
【发布时间】:2010-10-01 11:01:13
【问题描述】:

是否有可以在查询、存储过程、函数中使用的 SQL 命令,该命令适用于类似于以下 C# 代码的二进制类型?

if (someBinaryArray[index] == 0) { 
...

我想检查二进制中某个位置的索引是否是某个值,而不是拉下整个数组并进行比较?

【问题讨论】:

    标签: sql stored-procedures indexing binary


    【解决方案1】:

    您可以使用 Substring(),根据它与二进制列一起使用的文档:

    SELECT *
    FROM Table
    WHERE Substring(column, index, length) = 'blah'
    

    如果你真的想检查一个空值(如你的例子)......你可以这样做:

    SELECT *
    FROM table
    WHERE SUBSTRING(column, 3, 1) = CHAR(0)
    

    【讨论】:

      【解决方案2】:

      如果你在 MSSQL Server 上工作,你可以使用READTEXT 命令

      CREATE TABLE #t (b varbinary(1))
      
      DECLARE @ptrval varbinary(16)
      SELECT @ptrval = TEXTPTR(mybinarraycolumn) 
      FROM mytable WHERE pk = @pk
      
      INSERT INTO #t (b)
      READTEXT pub_info.pr_info @ptrval @index 1
      
      DECLARE @b varbinary(1)
      SELECT @b = b FROM #t
      

      【讨论】:

        猜你喜欢
        • 2016-03-24
        • 2021-11-27
        • 2017-06-24
        • 1970-01-01
        • 2019-09-13
        • 2014-07-10
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        相关资源
        最近更新 更多