Sybase (Adaptive Server Enterprise) Функция для замены символов в столбце - PullRequest
0 голосов
/ 03 октября 2018

Я хочу заменить символы в столбце sybase.

Я хочу, чтобы каждый символ был заменен на 'x', например 'A' на 'X', 'M' на 'X'

Предположим, что в столбце есть 3 значения:

  1. «Аман» - поэтому «Аман» необходимо заменить на «xxxx»
  2. «АЛЕКСАНДР» - поэтому «АЛЕКСАНДР» должензаменить на «xxxxxxxxx»
  3. «Robert» - поэтому «Robert» должен быть заменен на «xxxxxx».

Для этого в «Oracle» есть одна функция TRANSLATE.

Update Table_Name Set Column_Name=TRANSLATE(Column_Name,'abcdefghijklmnopqrstuvwxyz','xxxxxxxxxxxxxxxxxxxxxxxxxx');

Этот запрос заменит каждый символ на «x».Неважно, длина слов меняется или нет.Не зависит от длины столбца.

Поэтому, пожалуйста, предоставьте мне ту же функциональность в 'SYBASE'.

1 Ответ

0 голосов
/ 03 октября 2018

Есть два подхода.

Можно создать UDF и код T-SQL, который будет выполнять перевод.Но я должен предупредить вас, что эта функция будет очень и очень медленной.

Второй подход заключается в том, чтобы сделать что-то не совсем то, о чем вы просили, но очень похоже:

update tab set column_name = replicate('x', char_length(column_name))

Это также заменит другие символы, такие как пробел, числа и т. Д. Но это будет на порядок быстрее, чем первый.

...