2009-01-14 7 views
1

Existe-t-il une commande SQL pouvant être utilisée dans une requête, une procédure stockée, une fonction, qui fonctionnerait avec un type binaire similaire au code C# suivant?SQL: Obtenir la valeur à l'index dans la valeur binaire

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

Je suis désireux de vérifier si un indice d'une position dans le binaire est une certaine valeur au lieu de tirer vers le bas l'ensemble du réseau et de faire la comparaison?

Répondre

1

Vous pouvez utiliser substring(), selon la documentation, il fonctionne avec des colonnes binaires:

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

Si vous voulez vraiment vérifier une valeur nulle (comme dans votre exemple) ... vous pouvez le faire :

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

qui apparaissent s avoir travaillé - Merci – Hugoware

0

Si vous travaillez sur MSSQL Server, vous pouvez utiliser la commande 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 
Questions connexes