SQL: получить значение по индексу в двоичном значении - PullRequest
1 голос
/ 14 января 2009

Существует ли команда SQL, которая может использоваться в запросе, хранимой процедуре, функции, которая будет работать с двоичным типом, подобным следующему коду C #?

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

Я хочу проверить, является ли индекс позиции в двоичном файле определенным значением, вместо того, чтобы вытягивать весь массив вниз и выполнять сравнение?

Ответы [ 2 ]

1 голос
/ 14 января 2009

Вы можете использовать Substring (), согласно документации он работает с двоичными столбцами:

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

Если вы действительно хотите проверить нулевое значение (как в вашем примере) ... вы можете сделать это:

SELECT *
FROM table
WHERE SUBSTRING(column, 3, 1) = CHAR(0)
0 голосов
/ 14 января 2009

Если вы работаете на 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
...