J'utilise cette requête pour obtenir des données spécifiques: "Sélectionnez * de EMP où Emp_Name comme 'S%'"; P>
EMP_NAM est champ de caractère, comment puis-je utiliser la même condition logique avec le champ numérique? quelque chose comme: p>
"Sélectionnez * de EMP où Emp_ID ???? P>
où EMP_ID est le champ numérique. P>
merci, p>
10 Réponses :
Utiliser couler code> ou
Convert code> Fonction sur le champ code> EMP_ID CODE> et vous pouvez comparer avec
comme p >
Cast and Convert sont pris en charge dans les versions de Jet SQL?
Je ne sais pas sur Jet SQL mais BYU convertit dans la chaîne que vous pouvez faire cela
L'étiquette 'Jet' a été ajoutée après que certaines réponses (y compris la mine) ont été publiées; C'était à l'origine juste tagué 'SQL'.
FWIW JET (MAINTENANT Le moteur de base de données d'accès) a effectivement des fonctions de distribution par ex. CCurrency () sera lancé à la monnaie.
Non, vous ne pouvez pas utiliser Si vous souhaitez rechercher dans un champ numérique pour des choses telles que "commençant par 12" ou si vous aimez, votre conception ne correspond pas à vos besoins. P> comme code> pour les champs numériques.
Essayez d'utiliser
<< / code>,
> code> ou
= code>,
> = code>,
<= code>;) p>
Vous ne pouvez pas faire de caractères génériques sur un numéro, cependant, si vous avez vraiment besoin de, vous pouvez convertir le nombre en un Varchar, puis effectuer la correspondance générique.
EG. P>
SELECT * FROM emp WHERE CONVERT(varchar(20), emp_id) LIKE '1%'
J'utilise MS Jet, où convertir Varchar n'est pas défini?
Cela ne fonctionnera pas pour les bases de données à jet, mais une approche similaire sera. Utilisez CSTR () au lieu de la convertie (varchar ... relevé.
Dans Access Base de base de données Syntaxe SQL, pour utiliser le caractère WildCard code> Vous devez utiliser le mode de requête ANSI-92 ou utiliser le mot clé code> code> à la place du comme code> mot-clé.
Pour plus de détails sur le mode de requête ANSI-92, voir À propos du mode de requête ANSI SQL (MDB) Dans l'aide Access2003 (la même chose s'appliquera à ACE dans Access2007, mais ils ont supprimé le sujet de l'aide Access2007 pour une raison quelconque). Si vous le faites dans le code, vous devrez utiliser OLE DB E.G. ADO Classic en VBA. P>
pour le C'est la réponse. Maintenant, pour la "solution" ... p> Clairement, si vous devez effectuer ce type de requête sur EMP_ID, le domaine est faux, c'est-à-dire que cela ne devrait pas être un champ numérique. P> Guérir la maladie: modifiez le schéma pour en faire un champ de texte, ajout d'une règle de domaine garantissant uniquement des caractères numériques, par exemple P> Alike code> mot-clé ... Vous ne trouverez pas grand chose. C'est l'une de ces fonctionnalités officiellement sans papiers, ce qui signifie qu'il existe un élément de risque qu'il peut être supprimé d'une nouvelle révision au moteur de base de données d'accès. Personnellement, je prendrais ce risque d'avoir à coder explicitement pour le mode de requête ANSI-89 et le mode de requête ANSI-92, comme il est nécessaire pour les règles de validation et
Vérifiez les contraintes code> (voir exemple ci-dessous). Le codage pour les deux peut être fait, mais il est plus long ou plus délicat pour obtenir la droite, c'est-à-dire un risque plus immédiat si vous vous trompez. P>
CHECK (emp_id NOT ALIKE '%[!0-9]%')
Dans l'accès Vous pouvez concaténer le champ numérique avec une chaîne vide pour le contraire à une chaîne dans une chaîne que vous pouvez comparer à l'aide de: Notez également que l'accès utilise * non% comme wildcard personnage. Voir: comme opérateur (Microsoft Access SQL) . P> < / p>
Accédez uniquement à des utilisations * en tant que nature générique dans le code SQL lorsque dans le mode de requête ANSI-89. Voir ma réponse.
Carte sauvage '%' a fonctionné pour moi sur MS -SQL Server. Voir http://technet.microsoft.com/ EN-US / Bibliothèque / AA933232% 28V = SQL.80% 29.aspx . p>
La requête
Sélectionnez * à partir de MyTable où ID comme «548% ' Code> fonctionne sur MS-SQL Server 2008 R2 et renvoie les résultats avec IDS 5481 5485, etc. Colonne ID est
Int code> Type. < / p>
Bonjour, j'ai eu du mal à le faire avec un flotteur que je devais lancer deux tims moulés (moulage (Empid comme Bigint) que Varchar (15)) comme '% 903%' J'espère que quelqu'un trouvera cette utile p>
Dans FileMaker SQL, vous pouvez lancer n'importe quel champ à une chaîne avec la fonction STRVAL: P>
Voici un véritable exemple de l'utilisation de cela dans FileMaker: P>
Sélectionnez * à partir d'EMP où STRVAL (EMP_ID) comme "1%" code> p>
Comment répertorier tous les enregistrements contenant un ASCII 0 dans un champ numérique h3>
Sélectionnez EMP_ID à partir d'EMP où Strval (SomenumériquefieldField) comme '%' + Chr (0) + '%' code> P> P>
Utilisation de Concat Implic Convertir Entreger en chaîne p>
Sélectionnez * de la ville où Concat (ID_City, '') comme '% 119%' P>
Écrivez une expression numérique à l'intérieur de la clause WHERE.
Ex: Pour sélectionner Numérique Col1 terminer avec 2 derniers chiffres comme 20,
Où colonne1- (colonne1 / 100) = 20
(Diviser par 100 est la division entière).
Pour sélectionner lorsque Col1 devrait commencer avec 50,
Où (col1> = 500 et col1 <= 509) ou (col1> = 5000 et col1 <= 5099)
Ou (col1> = 50000 et col1 <= 50999) etc. (selon la colonne numérique
largeur).
Alternativement: le sol (log10 (ABS (COL1))) + 1 Renvoie le nombre de chiffres dans un numéro. Donc, le ci-dessous pourrait être la clause requise.
Où col1> 0 et col1 / ((plancher (log10 (ABS (X))) + 1 - 2) * 100) = 50
(Le -2 est d'obtenir les 2 premiers chiffres de Col1). P>
Que veux-tu accomplir? Cherchez-vous tous les identifiants qui commencent par E.G. 7?
Cela dépend de votre moteur DBMS, ce qui fait que la plupart d'entre eux soutiennent cela.