У меня есть следующий SQL:Путь не повторять выражения в запросе манипуляции строка SQL Server
SUBSTRING(Location,
CHARINDEX(' : ', Location) + 3,
CHARINDEX(' ms - ', Location) - (CHARINDEX(' : ', Location) + 3))
(Адрес может быть что-то вроде этого: 1dasev : 232 ms - 323-asv3R
и substring
вернется 232
)
Если Я написал это в C#, я бы не пересчитывал CHARINDEX(' : ', Location) + 3
дважды. Я бы сохранил его в переменной, а затем повторно использовал.
Есть ли какой-нибудь классный трюк в SQL для всех меня, чтобы сделать аналогичную вещь? (Мой запрос будет более сложным, чем простой пример выше, и я надеюсь, чтобы сделать его более читаемым.)
- это строковый формат, согласованный? –
вам нужно будет ввести дополнительный запрос или общее табличное выражение, отличное от этого, так как обычно это делается путем повторения формул. – Matt