В sql псевдоним - это другое имя для объекта базы данных. Значения не подпадают под эту категорию, поэтому невозможно их псевдонизировать. Вы можете, однако, форматировать вывод своего запроса, хотя форматирование обычно лучше всего делать на уровне презентации, а не в слое данных.
Сказав, что существует T-SQL решение для Вашего вопроса:
SELECT REPLACE(ColumnName, '_', ' ') As ColumnName
FROM TableName
Это будет конвертировать все подчеркивает пространства.
Для обработки другого формата вы также можете поблагодарить Джеффа Модена за решение этой проблемы (see this link).
SELECT COALESCE(STUFF(ColumnName, NULLIF(patindex('%[a-z][A-Z]%', ColumnName COLLATE Latin1_General_BIN), 0) + 1, 0, ' '), Col) AS ColumnName
FROM TableName
Так комбинируя 2 решения окончательный SQL должно быть что-то вроде этого:
SELECT REPLACE(COALESCE(STUFF(ColumnName, NULLIF(patindex('%[a-z][A-Z]%', ColumnName COLLATE Latin1_General_BIN), 0) + 1, 0, ' '), ColumnName), '_', ' ') AS ColumnName
FROM TableName
Таким образом, вы можете обрабатывать эти 2 форматы в чистом T-SQL без необходимости изменять запрос каждый раз, когда новый значение добавляется в таблицу.
Вот тестовый пример со значениями вы вывешенные:
DECLARE @t TABLE (Col VARCHAR(40))
INSERT INTO @t VALUES
('BILL_DETAILS'),
('BILLING_MENU'),
('ComplaintNumberInput'),
('CUSTOMER_ACCOUNT_NUMBER_INPUT'),
('DEFAULTER'),
('FAULTS_SHUTDOWN_MENU'),
('KUNDA_CONNECTION'),
('LOAD_SHEDDING_MENU'),
('LOAD_SHEDDING_SCHEDULED'),
('loadSheddingScheduleReplayer'),
('loadSheddingStatus'),
('loadSheddingStatusReplayer'),
('MENU_CONTEXT_EVAL'),
('POWER_COMPLAINTS_MENU'),
('repaetComplaintStatus')
SELECT Col
,UPPER(REPLACE(COALESCE(STUFF(col, NULLIF(patindex('%[a-z][A-Z]%', Col COLLATE Latin1_General_BIN), 0) + 1, 0, ' '), Col), '_', ' ')) AS NewCol
FROM @t
Результаты:
Col NewCol
BILL_DETAILS BILL DETAILS
BILLING_MENU BILLING MENU
ComplaintNumberInput COMPLAINT NUMBERINPUT
CUSTOMER_ACCOUNT_NUMBER_INPUT CUSTOMER ACCOUNT NUMBER INPUT
DEFAULTER DEFAULTER
FAULTS_SHUTDOWN_MENU FAULTS SHUTDOWN MENU
KUNDA_CONNECTION KUNDA CONNECTION
LOAD_SHEDDING_MENU LOAD SHEDDING MENU
LOAD_SHEDDING_SCHEDULED LOAD SHEDDING SCHEDULED
loadSheddingScheduleReplayer LOAD SHEDDINGSCHEDULEREPLAYER
loadSheddingStatus LOAD SHEDDINGSTATUS
loadSheddingStatusReplayer LOAD SHEDDINGSTATUSREPLAYER
MENU_CONTEXT_EVAL MENU CONTEXT EVAL
POWER_COMPLAINTS_MENU POWER COMPLAINTS MENU
repaetComplaintStatus REPAET COMPLAINTSTATUS
Вы можете создать вид. –
Почему вы не используете регулярное выражение в своем коде приложения, а изменение в базе данных делает все ваши _ в пространстве вашего кода приложения. –
Дорогой это значения, генерируемые сервером IVR (Interactive Voice Response). У меня есть доступ к таблице базы данных, называемой «Menu_Utilization» и «Имя столбца», имя MenuName, и это имена меню. – BilalAhmed