Мне нужно вытащить запись с самым высоким значением, в частности мне нужно только значение из этого поля. Проблема в том, что столбец представляет собой формат nvarchar, который содержит сочетание чисел и специальных символов. Ниже всего лишь пример:SQL: Найти наибольшее число, если его в формате nvarchar, содержащем специальные символы
PK | Column 2 (nvarchar)
-------------------
1 | .1.1.
2 | .10.1.1
3 | .5.1.7
4 | .4.1.
9 | .10.1.2
15 | .5.1.4
В основном, из-за естественного вида, элементы в столбце 2 сортируются как строки. Поэтому вместо того, чтобы возвращать PK для строки, содержащей «.10.1.2» в качестве самого высокого значения, я получаю PK для строки, которая содержит «.5.1.7».
Я попытался написать некоторые функции для этого, но кажется, что то, что я написал, выглядело намного сложнее, чем должно быть. У кого-нибудь есть что-то простое или сложные функции - единственный способ?
Я хочу пояснить, что я пытаюсь захватить PK записи, которая содержит самое высокое значение столбца 2.
Является ли '.10.1' больше, чем' .5.1. потому что 10> 5 или потому, что 101> 51? –
Значения в основном ограничены периодом. поэтому 10> 5 да –
первый набор чисел - это родители, а второй набор чисел - это дети для соответствующего родителя. –