Я использую этот кодВставить в SQL Макс +1 только цифры (предотвращение символов)
(SELECT (MAX(CODE) +1 WHERE ISNUMERIC([code]) = 1)
Я хочу макс +1 только мои номера моей колонки предотвращение символов символов.
Я использую этот кодВставить в SQL Макс +1 только цифры (предотвращение символов)
(SELECT (MAX(CODE) +1 WHERE ISNUMERIC([code]) = 1)
Я хочу макс +1 только мои номера моей колонки предотвращение символов символов.
ПРИМЕЧАНИЕ: ЭТОТ ВОПРОС БЫЛ ПОДТВЕРЖДЕНЫ MYSQL, КОГДА ЭТО ОТВЕТ ОТПРАВЛЕН.
Вы можете использовать substring_index()
разделить значения, а затем вновь объединить их:
(SELECT CONCAT(SUBSTRING_INDEX(MAX(Code), '-', 1), '-',
SUBSTRING_INDEX(MAX(CODE), '-', -1) + 1
)
FROM . . .
WHERE code LIKE '%NEW-1%'
)
Это предполагает, что данные символы не имеют переносы в них, и что значения после «1» все номера ,
Кроме того, это не пусковое число, это нули, но это хорошая идея для таких кодов - это гарантирует, что они всегда одинаковой длины и что они сортируются правильно.
i get error SUBSTRING_INDEX 'не является признанным встроенным именем функции. Может быть, я использую sql 2000 – user6453809
@ user6453809 Тогда не говорите, что вы используете MySQL ... –
Извините. Или как я могу предотвратить столбцы с символами? Просто до максимального +1 к последнему столбцу с номерами – user6453809
MAX() function принимает выражения, а не только имена столбцов:
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 является SQL Server 2005, документы для SQL Server не 2000, по-видимому уже не на линии, но MAX()
принадлежит к SQL стандарт в любом случае.)
Вы можете форматировать исходный код с помощью кнопки [Code Sample '{}'] (http://i.stack.imgur.com/VYd26.png) - я сделал это для вас в этот раз. –