#sql #sql-server #string
#sql #sql-сервер #строка
Вопрос:
У меня есть таблица фактов, которая обновляется ежедневно с учетом времени клиента в информации о приложении со сторонней платформы, которую мы используем, и к идентификационному номеру добавляется немного текста. Итак, если идентификационный номер клиента равен 123, эта таблица заполняется чем-то вроде ABC_123. Мне нужно получить эту информацию для определенной группы клиентов на основе их идентификационных номеров, поэтому я планировал создать временную таблицу с идентификационным номером клиента и временем в приложении и удалить добавленный фрагмент текста. Мне до сих пор не повезло найти способ разделить текст в этом столбце, используя «_» в качестве разделителя, и я не решаюсь использовать подстановочный знак. Любой совет?
Ответ №1:
Похоже, было бы лучше добавить PERSISTED
вычисляемый столбец в таблицу. Тогда у вас есть как исходные данные, так и те, которые вы хотите, и вы также можете INDEX
PERSISTED
использовать столбец.
ALTER TABLE dbo.YourTable ADD GoodID AS CONVERT(int,STUFF(BadID, 1, CHARINDEX('_',BadID),'')) PERSISTED;
Комментарии:
1. Спасибо! У меня нет разрешения на редактирование в этой части базы данных, но это дает мне то, что мне нужно, чтобы обратиться к администратору базы данных и попросить их обновить этот столбец