Ok, je ne sais pas pourquoi une société de plusieurs milliards de dollars court-circuite les fonctions de tableau pour leurs serveurs SQL phares C'est pourquoi les gens utilisent MySQL. Ok, assez de déclamations. Utilisation de SQL 2005.Comparaison de tableaux en utilisant SQL 2005. Erreur lors de la conversion
Disons que je reçu un tableau par case d'une autre page à l'aide de la méthode querystring:
intTask = request.querystring("task")
Pour cet exemple, intTask = "1,3,5"
Je utilisé la requête
SELECT user.Task FROM user WHERE (user.Task in (" & intTask & "))
Cela donne une erreur de:
Conversion failed when converting the nvarchar value '1, 2' to data type int
Le tableau dans la colonne User.task ici = 1,2. NVARCHAR est le type de données. intTask est une chaîne. Aucune idée de la raison pour laquelle SQL tente de convertir la colonne en entiers quand elle suppose une comparaison de chaînes. Je connais déjà la vulnérabilité d'injection SQL, qui s'est occupée d'un autre script pour la page.
OK. Comment comparer les tableaux à l'aide de SQl Server 2005? Je n'arrive pas à trouver des fonctions SQL qui vont parcourir 2 chaînes et comparer pour toutes les valeurs correspondantes.
Par exemple
intTask = 1,2
user.task = 3,5,7,2,9
En raison des 2 années, je devrais obtenir un recordset parce que le exist de 2 dans les deux tableaux
MISE À JOUR
Y at-il une fonction SQL qui va gérer deux tableaux et parcourez les tableaux pour trouver les éléments correspondants. Quelque chose comme:
intTask = "1,3,5"
utilisateur ("tâche") = "3,5,2"
ARR1 = split (intTask, "")
ARR2 = split (utilisateur ("tâche"), "")
pour i = 0 à UBound (arr1)
for j=0 to UBound(arr2)
if(arr1(i) = arr2(j)) then
common_found = true
end if
Next
Suivant
Merci à l'avance
+1 - J'ai eu cet article favori avant et perdu, c'est un bon article. – LittleBobbyTables
Veuillez fournir un exemple de l'utilisation du "préfixe win N" dans le code. De préférence, une requête de requête SQL complète. Je vous remercie. – Patriotec
voir le code J'ai ajouté – SQLMenace