Ich verwende diesen CodeInsert in SQL Max +1 nur Zahlen (verhindern Zeichen)
(SELECT (MAX(CODE) +1 WHERE ISNUMERIC([code]) = 1)
I bis max wollen +1 meine Nummern meiner Spalte zu verhindern Zeichen Zeichen nur.
Ich verwende diesen CodeInsert in SQL Max +1 nur Zahlen (verhindern Zeichen)
(SELECT (MAX(CODE) +1 WHERE ISNUMERIC([code]) = 1)
I bis max wollen +1 meine Nummern meiner Spalte zu verhindern Zeichen Zeichen nur.
HINWEIS: DIESE FRAGE WURDE MYSQL BEZEICHNET, WENN DIESE ANTWORT VERBUNDEN WURDE.
Sie können substring_index()
verwenden, um die Werte zu spalten und dann wieder vereinigen sie:
(SELECT CONCAT(SUBSTRING_INDEX(MAX(Code), '-', 1), '-',
SUBSTRING_INDEX(MAX(CODE), '-', -1) + 1
)
FROM . . .
WHERE code LIKE '%NEW-1%'
)
Dies setzt voraus, dass die Platzhalter haben keine Bindestriche in ihnen, und dass die Werte nach den „1“ sind alle Zahlen .
Auch dies pad die Nummer nicht Nullen, aber das ist eine gute Idee für solche Codes - es stellt sicher, dass sie immer die gleiche Länge haben und dass sie richtig sortieren.
Ich erhalte Fehler SUBSTRING_INDEX 'ist kein anerkannter Name der eingebauten Funktion. Vielleicht weil ich sql 2000 verwende – user6453809
@ user6453809 Dann sage nicht, dass Sie MySQL verwenden ... –
Entschuldigung. Oder wie kann ich Spalten mit Zeichen verhindern? Nur bis max. +1 zur letzten Spalte mit Zahlen – user6453809
Die MAX() function akzeptiert Ausdrücke, nicht nur Spaltennamen:
SELECT MAX(CASE ISNUMERIC(code) WHEN 1 THEN code END)+1 as next_code
FROM (
SELECT '15' AS code
UNION ALL SELECT ' 98 ' AS code
UNION ALL SELECT 'New-45' AS code
) foo
WHERE ISNUMERIC(code)=1;
16
(Link ist auf SQL Server 2005, Dokumentation für SQL Server 2000 sind offenbar nicht mehr auf der Linie, aber MAX()
gehört zu SQL Standard sowieso.)
Sie können den Quellcode mit dem Symbolleisten-Button [Code Sample '{}'] (http://i.stack.imgur.com/VYd26.png) formatieren - ich habe es für Sie erledigt diesmal. –