SQL:以二进制值获取索引值

时间:2009-01-14 19:46:09

标签: sql stored-procedures indexing binary

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

如果你真的想检查null(如你的例子中那样)......你可以这样做:

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

答案 1 :(得分:0)

如果您使用的是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