Size: a a a

2019 July 19

mK

mejir Kapassov in Astana JKUG
Оракловый регексп тоже экспрешн
источник

mK

mejir Kapassov in Astana JKUG
Например как найти самую первую цифру там в значении роу. Используя стандартные функции МССкл. Вот это и будет экспрешном в ордер бай
источник

AT

Aidyn Toibekov in Astana JKUG
mejir Kapassov
Инлайн
Нашёл. Тоже вариант о написании отдельной функции. И тоже будет долго..
источник

AT

Aidyn Toibekov in Astana JKUG
Ок, примерно понял. Буду писать функцию. Спасибо
источник

SR

Serik RAKHMETOV in Astana JKUG
Aidyn Toibekov
Ок, примерно понял. Буду писать функцию. Спасибо
источник

b

batyrbayev_fs in Astana JKUG
а вообще задача как стоит? отделить строки от чисел?
источник

AT

Aidyn Toibekov in Astana JKUG
Не совсем то что нужно, в данном решении строки с буквами будут вне сортировки
источник

mK

mejir Kapassov in Astana JKUG
SUBSTRING(val, PATINDEX('%[0-9]%', val), (CASE WHEN PATINDEX('%[^0-9]%', STUFF(val, 1, (PATINDEX('%[0-9]%', val) - 1), '')) = 0 THEN LEN(val) ELSE (PATINDEX('%[^0-9]%', STUFF(val, 1, (PATINDEX('%[0-9]%', val) - 1), ''))) - 1 END
источник

N

Naiman in Astana JKUG
Aidyn Toibekov
Всём здравствуйте!
Есть таблица table в mssql, со столбцем f, и значениями : 1, 2а, с3, 10.

Как написать order by чтоб отсортированно было только по цифрам? Т.е. 1,2,3,10?
лучше завести отдельное поле для сортировки и в него сохрянять преобразованное значение (число). в разработке дольше, то работать будет быстрее
источник

mK

mejir Kapassov in Astana JKUG
Можно это впихнуть в ордер бай
источник

SR

Serik RAKHMETOV in Astana JKUG
Aidyn Toibekov
Не совсем то что нужно, в данном решении строки с буквами будут вне сортировки
нужно оттуда взять каст без ошибки и применить в своем условии
источник

SR

Serik RAKHMETOV in Astana JKUG
WHERE > 1
источник

AT

Aidyn Toibekov in Astana JKUG
batyrbayev_fs
а вообще задача как стоит? отделить строки от чисел?
Задача из строки вытащить числа и отсортировать по числам
источник

N

Naiman in Astana JKUG
Naiman
лучше завести отдельное поле для сортировки и в него сохрянять преобразованное значение (число). в разработке дольше, то работать будет быстрее
можно в таблицу добавить вычисляемый столбец
источник

mK

mejir Kapassov in Astana JKUG
Naiman
лучше завести отдельное поле для сортировки и в него сохрянять преобразованное значение (число). в разработке дольше, то работать будет быстрее
Да, это вообще то самый правильный путь. Навешать триггер который при апсерте будет вставлять нормализованное в новый столбец
источник

AT

Aidyn Toibekov in Astana JKUG
Naiman
лучше завести отдельное поле для сортировки и в него сохрянять преобразованное значение (число). в разработке дольше, то работать будет быстрее
Тоже думал об этом, но у меня нет события об insert || update. То есть нужно будет делать заполнение второго поля по расписанию
источник

mK

mejir Kapassov in Astana JKUG
Naiman
можно в таблицу добавить вычисляемый столбец
Оно будет вычисляться всегда, а если юзать  экспрешн ордер бай, то только в случае явного указания в ордер бай.
источник

b

batyrbayev_fs in Astana JKUG
оракл?
источник

M

Magzhan in Astana JKUG
mejir Kapassov
Да, это вообще то самый правильный путь. Навешать триггер который при апсерте будет вставлять нормализованное в новый столбец
источник

mK

mejir Kapassov in Astana JKUG
Еще момент, преимущества создания функции вместо инлайн экспрешна - можно создать функшн бейзд индекс чтобы учкорить ордер бай. Писали же медленно
источник