Разделение текста столбца

#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;
 

db<>скрипка

Комментарии:

1. Спасибо! У меня нет разрешения на редактирование в этой части базы данных, но это дает мне то, что мне нужно, чтобы обратиться к администратору базы данных и попросить их обновить этот столбец