У меня есть такие значения, как SP-1, SP-2, SP-3 ..... SP-10, SP-11.

Мне нужно получить максимальное количество отсюда на моем SQL-сервере

SELECT MAX(SUBSTRING(SupplementId,4,10)) AS max_num FROM supreg

Когда я выполняю код, я получаю максимальное число 9.

1
Malinda Peiris 7 Сен 2016 в 14:27

3 ответа

Лучший ответ

Пытаться:

SELECT MAX(CAST(SUBSTRING(SupplementId,4,10) AS INT)) AS max_num FROM supreg

Или

SELECT MAX(CAST(REPLACE(SupplementId,'SP-','') AS INT)) AS max_num FROM supreg
1
i486 7 Сен 2016 в 11:31

В соответствии с вашим требованием вы можете использовать

 Select Max(substr ( tb_simple.sampleValues ,4  )  ) as maxValue from tb_simple

enter image description here

0
Abhay Singh Naurang 7 Сен 2016 в 11:50

Другой метод - использовать длину:

SELECT TOP 1 sr.*
FROM supreg sr
ORDER BY length(SupplementId) DESC, SupplementId DESC;

Это позволяет получить всю строку с наибольшим значением.

0
Gordon Linoff 7 Сен 2016 в 11:36