Это слепой выстрел, поскольку вы не указали свою РСУБД. Но если предположить, что ваш [tsql]
указывает на SQL -Server и у вас есть версия v2017 +, вы можете попробовать это:
- какой-то грязный ввод
DECLARE @input VARCHAR(100)='abc123(33)%&$.def,,3xyz';
- список от всех символов, от которых вы хотите избавиться
DECLARE @notWanted VARCHAR(100)='0123456789!"§$%&/()=?*+-_#''<>@€,.;:';
- промежуточный заполнитель (любой из запрещенных символов)
DECLARE @useInstead CHAR(1)='~';
- Здесь вы видите работу TRANSLATE ()
SELECT TRANSLATE(@input,@notWanted,REPLICATE(@useInstead,LEN(@notWanted)));
--> abc~~~~~~~~~~~~def~~~xyz
- Теперь вы можете использовать простую REPLACE ()
SELECT REPLACE(TRANSLATE(@input,@notWanted,REPLICATE(@useInstead,LEN(@notWanted))),@useInstead,'')
--> abcdefxyz
Подсказка: прежде чем кто-либо начнет предлагать огромный ответ с рекурсивным CTE, циклами, списками подсчета и т. Д. Пожалуйста, предоставьте более подробную информацию.
Вы можете прочитать этот ответ , где я предоставил функцию для работы с каждым персонажем отдельно. Вы можете адаптировать это к вашим потребностям.