7 Stimmen

Mit SQL Server nur ganze Zahlen aus einer Char-Spalte auswählen

Wie kann ich eine Select-Anweisung schreiben, um nur Ganzzahlen (und nichts anderes) aus einer Char-Spalte in SQL Server auszuwählen? Meine Tabelle heißt zum Beispiel POWDER mit 2 Spalten, ID (int) und Name(char (5))

ID     Name
-- ----------
1     AXF22
2     HYWWW
3     24680
4     8YUH8
5     96635

Ich möchte nur die Zeilen auswählen können, die eine Ganzzahl und nichts anderes enthalten (ID 3 und ID 5 in diesem Beispiel)

Wenn ich es versuche:

SELECT * 
  FROM POWDER
 WHERE Name LIKE '[0-9]%'

...wird sie zurückkehren:

ID     Name
--    ----------
3      24680
4      8YUH8
5      96635

Haben Sie eine Idee, wie man die Zeilen, die nur ganze Zahlen enthalten, erhalten kann?

16voto

Chris Latta Punkte 19734
SELECT * FROM POWDER WHERE IsNumeric(Name) = 1

IsNumeric gibt 1 für einige andere Zeichen, die in Zahlen gültig sind, wie + und - und $, aber für Ihre Eingabe sollten Sie in Ordnung sein.

4voto

Ilja Punkte 41

Versuchen Sie dies:

SELECT * FROM Tabelle WHERE Name LIKE '[0-9]%%'

2voto

gbn Punkte 407102

Um Probleme mit ISNUMERIC und allen Leerzeichen, -, +, . usw. zu vermeiden, verwenden Sie die Tatsache, dass die Spalte char(5) ist

SELECT * 
  FROM POWDER
 WHERE Name LIKE '[0-9][0-9][0-9][0-9][0-9]'

Bearbeiten: für eine beliebige Anzahl von Zeichen. Doppelte Verneinung...

SELECT * 
  FROM POWDER
 WHERE Name NOT LIKE '%[^0-9]%'

2voto

Anthony Faull Punkte 16853

Verwenden Sie positive und negative Prüfungen, um sicherzustellen, dass wir eine ganze Zahl haben: Sie muss eine Ziffer enthalten. Es sind nur Ziffern und Leerzeichen erlaubt. Zwischen den Ziffern sind keine Leerzeichen erlaubt.

SELECT *
  FROM POWDER 
 WHERE Name LIKE '%[0-9]%'
   AND Name NOT LIKE '%[^0-9 ]%'
   AND Name NOT LIKE '%[0-9]% %[0-9]%'

0voto

sathish Punkte 36

Versuchen Sie es:

SELECT * 
FROM POWDER   
WHERE Name patindex ('%[a-z]%',name) != 0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X