Kommastellen im SQL Select?

3 Antworten

Ergänzend: Eine mysql Datenbank speichert Zahlen mit Nachkommastellen im Feldtyp Float oder Decimal. Das Nachkommazeichen ist im Deutschen das ",". Bei der MySQL Datenbank ist es jedoch der "." Punkt. Speicherst Du jedoch 9,998 in einem Feld vom Typ Float macht er 9 daraus und schiebt eventuell gütigerweise eine Warnmeldung hinterher.

Was anderes ist es wenn Du die den Feldtyp 'Var Char' genommen hast. Dort ist dann die 'Zahl' wie ein String zu behandeln.

Woher ich das weiß:eigene Erfahrung

Ich tu jetzt einfach mal so, als wenn die aktuelle Nummer, die geprüft werden soll, in der Column "decimalNum" steht

SELECT LENGTH(SUBSTRING(decimalNum, INSTR(decimalNum, ".")+1,16)) AS decimalPlaces;

MFG xGlumi

Woher ich das weiß:eigene Erfahrung

mysqlprogammi 
Beitragsersteller
 10.07.2018, 14:48

Hi, danke dir das klappt soweit. Nur kann ich damit auch anzeigen wo der wert herkommt? also b.s. ID 1 Name Test Wert 98,999 also das das in der reihe angezeigt wird ?

0
xGlumi  10.07.2018, 14:50
@mysqlprogammi

Ich verstehe dein Kommentar nicht ganz, aber kommentier doch einmal deine Query, die du bis jetzt hast, und versuch nocheinmal genau zu erklären was du ausgegeben haben möchtest. Dann kann ich das für die umbauen.

MFG xGlumi

0
mysqlprogammi 
Beitragsersteller
 10.07.2018, 15:41
@xGlumi

Dort erscheint dann decimalPlaces und der Wert 6. Ich möchte es so haben, das er mir die nicht zählt sonder alle werte mit der eindeutigen schlüssel ID ausgibt sodass ich dann alle werte die mehr als zwei werte hinter dem Koma haben später weiter verarbeiten kann und daraus eine liste erstellen kann.

0
xGlumi  10.07.2018, 15:47
@mysqlprogammi

Dann liefer mir doch endlich mal deine aktuelle Query, oder zumindest die Columnnames der schlüsselID ^^

Nuja, ich erstelle dir dann jetzt halt einfach eine Query, die mit Beispieldaten funktioniert.

SELECT schluesselID FROM meineTabelle WHERE LENGTH(SUBSTRING(decimalNum, INSTR(decimalNum, ".")+1,16))> 2;

Wenn du alle Daten der gefundenen Reihe ausgeben willst, dann ersetz "schluesselID" durch ein strenchen "*"

MFG xGlumi

1

könnte man umgehen mit einem IF aussenrum.

if *die length der nachkommastelle* > 2...
...select...


Kieselsaeure  10.07.2018, 16:37

if im sql query..? das funkt vllt bei nosql mit js aber nicht unbedingt bei anderen systemen

0