在每一列中,在前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*****
感谢。
答案 0 :(得分:4)
这应该这样做。
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个字符的名字提供额外的*。这是一种应该有效的方法。
SELECT
LEFT(nameFirst + replicate('*',5),5) + replicate('*',5) + SPACE(10)
...
FROM table_01
这有点偷偷摸摸,但它避免了更长的内联条件。