Utilisation de la syntaxe SELECT 2 dans ADO
Auteur:Eve Cole
Date de mise à jour:2009-05-30 19:54:35
Suite de l'article précédent :
WHERE peut utiliser les opérateurs BETWEEN, LIKE et IN suivants.
Entre...Et
Entre...Et détermine si la valeur de l'expression se situe dans la plage spécifiée. La syntaxe est :
expr Entre valeur1 et valeur2
Indique que si la valeur de expr est comprise entre valeur1 et valeur2, l'opérateur Between...And renverra True sinon il renverra False ;
Vous pouvez également ajouter l'opération logique Not expr Between value1 And value2 pour déterminer la condition opposée, c'est-à-dire que expr se situe en dehors de la plage de valeur1 et de valeur 2.
Si expr, value1 ou value2 est Null, Between...And renverra la valeur Null.
Vous ne pouvez pas utiliser le caractère générique * dans l'opérateur Entre...Et. Par exemple, vous ne pouvez pas utiliser 100* et 500* pour rechercher des numéros de code produit compris entre 1 000 et 5 000.
Comme
J’aime trouver des mots-clés correspondants.
Like est suivi d'une expression répertoriant les chaînes ou les littéraux de chaîne à comparer.
Dans une expression, vous pouvez utiliser l'opérateur Like pour comparer les données d'un champ avec une expression de chaîne. Vous pouvez utiliser le caractère générique * pour rechercher des données similaires, telles que Like "王*", et la requête renverra des données commençant par [王] dans tous les champs.
Symboles pouvant être utilisés dans l'expression de l'opérateur après Like :
% : caractère générique, représentant un ou plusieurs caractères. Par exemple, LIKE jack% trouvera tous les littéraux de chaîne commençant par jack, et LIKE %jack% trouvera les littéraux de chaîne incluant jack.
_ : Un caractère générique d'un caractère, par exemple, LIKE jack_ trouvera des chaînes littérales telles que jack1, jacka, etc., et LIKE _jack_ trouvera des chaînes littérales telles que ajackb, cjackf, etc.
[xy] : Spécifiez la plage de caractères, par exemple, LIKE [ac]jack trouvera une chaîne de texte telle que ajack1, bjack, cjack, etc.
[^xy] : spécifiez la plage de caractères exclus, par exemple, LIKE [^ac]jack ne trouvera pas les chaînes littérales telles que ajack1, bjack, cjack, etc.
Dans l'exemple suivant, vous obtiendrez des données commençant par la lettre A et suivies de n'importe quelle lettre entre B et G et d'un chiffre :
Comme "A[BG]#"
DANS
Formule de fonctionnement IN, portée limitée.
La syntaxe est :
expr [Pas] Dans (valeur1, valeur2,…)
Parmi eux, expr est le champ d'expression de l'opération. value1, value2, ... sont les listes de plages spécifiées.
Par exemple, vous pouvez utiliser l'opérateur In pour spécifier la ville où les étudiants doivent résider, à savoir Guangzhou, Shenzhen ou Shantou :
SÉLECTIONNER *
DES étudiants
OÙ CityIn (« Ville de Guangzhou », « Ville de Shenzhen », « Ville de Shantou »)
Regardons un exemple de programme ASP utilisant cette commande SQL.
Nous pouvons utiliser la clause IN pour déterminer la plage. Par exemple, le programme ASP rs24.asp est le suivant : [SELECT nom, sujet, score From exam Where score In (SELECT score From exam Where score >= 60)], utilisez IN pour savoir que le score est supérieur ou égal à 60 points :
<%
Définir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Définir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT nom, sujet, score de l'examen où score In (SELECT score de l'examen où score >= 60)"
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Dans : les scores inférieurs à 60 ne sont pas comptés"
Faire sans rs2.EOF
Réponse.Écrivez "<BR>" & rs2("Nom") & " " & rs2("Sujet") & " Score : " & rs2("Score")
rs2.MoveNext
Boucle
rs2.Fermer
%>
Le programme ASP ci-dessus, rs24.asp, utilise un navigateur côté client pour parcourir les résultats d'exécution et afficher les enregistrements avec des scores supérieurs ou égaux à 60 points.
PAS DANS
L’expression NOT IN signifie qu’elle n’appartient pas à la plage spécifiée.
Regardons un exemple d'utilisation de cette commande SQL dans un programme ASP.
Nous pouvons utiliser la clause Not In pour déterminer les enregistrements qui ne doivent pas être affichés. Par exemple, le programme ASP rs24.asp est le suivant : [SELECT nom, sujet, score From exam Where score Not In (SELECT score From exam Where score >= 60)], utilisez IN Rechercher les enregistrements avec un score non supérieur ou égal à 60 points, c'est-à-dire les enregistrements avec un score inférieur à 60 points :
<%
Définir conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Définir rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT nom, sujet, score de l'examen où le score n'est pas inclus (SELECT score de l'examen où le score >= 60)"
rs2.Open SqlStr,conn1,1,1
Response.Write "<p>Pas présent : les scores supérieurs à 60 ne sont pas pris en compte"
Faire sans rs2.EOF
Réponse.Écrivez "<BR>" & rs2("Nom") & " " & rs2("Sujet") & " Score : " & rs2("Score")
rs2.MoveNext
Boucle
rs2.Fermer
%>
Pour le programme ASP rs24.asp ci-dessus, utilisez le navigateur côté client pour parcourir les résultats d'exécution et afficher les enregistrements avec des scores non supérieurs ou égaux à 60 points.