После небольшого исследования я узнал, как удалить ряд нежелательных символов из строки. Я планирую бросить это в функцию и вызвать ее, когда это необходимо.Функция удаления нежелательных символов - SQL Server
Как правило, когда я программирую или кодирую что-то, я просто хочу, чтобы он работал, а не работал хорошо, поэтому мне было интересно узнать, есть ли у вас эксперты SQL Server, что-нибудь, что могло бы сделать код более изящным, и если вы сможете обнаружить любой потенциальный SQL вопросы для инъекций:
IF OBJECT_ID('tempdb..#tmpMNHArrayOfChars') IS NOT NULL DROP TABLE #tmpMNHArrayOfChars
IF OBJECT_ID('tempdb..#ExcludedChars') IS NOT NULL DROP TABLE #ExcludedChars
GO
DECLARE @SomeString VARCHAR(300);
SET @SomeString = 'Fluffy=the_rab bit_';
DECLARE @Count INT;
SET @Count = 0;
DECLARE @Len INT;
SET @Len = LEN(@SomeString);
DECLARE @CharVal VARCHAR;
DECLARE @CharPos INT;
--Create a table for each char in the string
CREATE TABLE #tmpMNHArrayOfChars (CharPos INT, CharVal VARCHAR)
WHILE @Count <= @Len
BEGIN
SET @CharVal = RIGHT(LEFT(@SomeString, @Count),1)
INSERT INTO #tmpMNHArrayOfChars (CharPos, CharVal) VALUES (@Count, @CharVal)
SET @Count = @Count + 1;
END
-- Set up Tmp table of excluded chars
CREATE TABLE #ExcludedChars
(
CharId INT NOT NULL PRIMARY KEY,
CharString VARCHAR(12)
)
INSERT INTO #ExcludedChars (CharId, CharString)
VALUES
(001, '!'),
(002, '£'),
(003, '$'),
(004, '%'),
(005, '^'),
(006, '&'),
(007, '*'),
(008, '('),
(009, ')'),
(010, '_'),
(011, '+'),
(012, '='),
(013, '@'),
(014, '~'),
(015, '#'),
(016, '\'),
(017, '/'),
(018, '|'),
(019, '{'),
(020, '}'),
(021, '['),
(022, ']'),
(023, '<'),
(024, '>'),
(025, '.'),
(026, ','),
(027, '¬')
--Compare two tables and remove uneeded chars
DECLARE @SomeInt INT
DECLARE @SomeCount INT
DELETE SC FROM #tmpMNHArrayOfChars SC
CROSS JOIN #ExcludedChars EC WHERE SC.CharVal=EC.CharString
SELECT * FROM #tmpMNHArrayOfChars SC
expedted выход должен быть – Chanukya
С точкой зрения производительности, я не думаю, что это лучший способ, чем вложенное 'REPLACE' заявления я боюсь. – Bridge
Возможный дубликат [Символьное сопоставление/поиск и замена символа по символу в SQL Server 2008 R2] (http://stackoverflow.com/questions/10070643/character-mapping-search-and-replace-character-by-character-in -sql-server-2008) – Bridge