Fondamentalement, je veux faire cela:
Je veux retourner un ensemble d'enregistrements convertissant une valeur NvarcharN (ID) à un entier s'il contient un numéro. Si ID peut être converti en un numéro, ajoutez cette ligne au jeu d'enregistrements code> code>. Sinon, sautez cette ligne. P>
Je pense que le SQL devrait ressembler à quelque chose comme ça. p>
(ID est Nvarchar (10) dans dbo.table) P>
CREATE TABLE #Temp (ID int) INSERT INTO #Temp SELECT ID FROM Table Where ISNumeric(Id)=0
3 Réponses :
Cependant isnumeric a un problème p> Exécuter ce p> ces retournements 1 p> regardez sur isnumeric, isint, isnumber pour certains moyens de déterminer s'il peut être converti en un entier p> p> isnumeric (ID) = 0 code> doit être iSnumeric (ID) = 1 code>
Pour être sûr, oubliez Isnumeric
Si vous ne vous attendez pas à des nombres négatifs, vous pouvez utiliser ce P>
INSERT INTO #Temp SELECT ID FROM Table Where Id > '' -- is not the empty string and is not null AND not ID like '%[^0-9]%' -- contains digits only
Pourquoi pas code> nécessaire ici? Si nous sélectionnons des enregistrements avec des chiffres uniquement, alors pourquoi utiliser pas code>?
@Learner parce que '^' est la négation et [^ 0-9] signifie un caractère non chiffré. Sans pas, nous avons des identifiants qui ont au moins un caractère non chiffré
Peut-être que celui-ci pourrait aider: