SQL заменяет запятую в результатах без использования replace
Я чувствую, что это должно быть достаточно просто сделать, но не нашли никаких решений, которые не использовали replace до сих пор. У меня есть следующая инструкция select, которую я запускаю, и для некоторых столбцов есть запятые, разделяющие значения. Я хотел бы заменить эти запятые точкой с запятой, однако я хочу сделать это только в инструкции select. Я не хочу, чтобы он изменял значения в таблицах вообще. Это не одно утверждение, или я бы просто заменил все запятые точка с запятой, а затем вернуться назад.
SELECT a.Category_Id, a.Category_Name, ISNULL(b.Category_Alias, '') as Category_Alias,
ISNULL(b.SUPPORT_NAMES, '') as SUPPORT_NAMES
FROM Categories a
INNER JOIN CategoryInfo b on b.Category_Id=a.Category_Id
для столбца Category_Alias записи фактически хранятся как CS, Customer Support
и я хочу, чтобы это показать как CS; Customer Support
только для оператора select.
3 ответов
Я считаю, что вы можете быть смущены тем, что делает функция REPLACE. Вы можете использовать REPLACE в своем операторе SELECT без изменения данных в базе данных:
SELECT REPLACE(MyField, ',', ';') AS NewFieldName
FROM MyTable
Я считаю, что вы не хотите физически заменять значение в таблице, но ok на заменить на select
вы можете
Select REPLACE(ColumnName,',',';')
From TableName
большинство SQL-серверов реализуют встроенную функцию замены. Большинство из них имеют имя replace(), а также могут использоваться в инструкции select. Пример из MySQL:
SELECT field, REPLACE(field,',',';') FROM my_table;