Как добавить пробел после некоторого числа символов, используя оператор выбора? - PullRequest
3 голосов
/ 17 февраля 2012

В каждом столбце после первых 5 символов мне нужно добавить / заменить следующие 5 символов на '*', а затем добавить еще 10 пробелов.

SELECT nameFirst, nameLast, number, fax 
FROM table_01

Ожидаемый результат: -

Revol*****          Jenni*****          598-1*****          12345*****      
Jenit*****          Austi*****          598-1*****          12345*****          
Revol*****          Jenni*****          598-1*****          12345*****

Спасибо.

1 Ответ

4 голосов
/ 17 февраля 2012

Это должно сделать это.

SELECT 
   LEFT(nameFirst,5) + '*****          ',
   LEFT(nameLast,5) + '*****          ',
   LEFT(number,5) + '*****          ',
   LEFT(fax ,5) + '*****          '
FROM table_01

Если вы думаете, что вы захотите использовать переменную позже для числа * и пробелов, этот метод может быть лучше (и более читабельным), но использует ключевые слова, специфичные для tSQL:

SELECT 
   LEFT(nameFirst,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(nameLast,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(number,5) + REPLICATE('*',5) + SPACE(10),
   LEFT(fax ,5) + REPLICATE('*',5) + SPACE(10)
FROM table_01

Обновление за ваш комментарий
Предполагая, что вы хотите дополнительные * для имен с <5 символов. Вот подход, который должен работать. </p>

SELECT 
   LEFT(nameFirst + replicate('*',5),5) + replicate('*',5) + SPACE(10)
   ...
FROM table_01

Это немного подлый, но он избегает более длинных условных выражений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...