如何从选择查询中替换结果的最后4个字符

时间:2018-12-19 13:30:30

标签: sql sql-server

可以说我有一个“ SELECT * FROM TABLE”,它导致很多行和很多列。

如果我不想用X或*替换第三栏中的最后4个字符,该如何编写查询?

5 个答案:

答案 0 :(得分:2)

在sql server中,以下方法将起作用:

DECLARE @test VARCHAR(100)= '123456789'

SELECT STUFF(@test, LEN(@test)-3, 4, 'XXXX')

返回:12345XXXX

答案 1 :(得分:0)

这可能对您有帮助

declare @value varchar(100) = 'Replace 4 characters '

select LEFT (@value, LEN(@value)-4) + REPLICATE('X',4)

尝试此查询

select LEFT (SOCIALNUM , LEN(SOCIALNUM )-4) + REPLICATE('X',4) ,* from CLIENT

答案 2 :(得分:0)

如果字符串长于4,则用'XXXX'替换最后4个字符

SELECT IIF(LEN(Column3) > 4, STUFF(Column3, LEN(Column3) - 3, 4, 'XXXX'), Column3)

或者如果您知道长度始终为10

SELECT STUFF(Column3, LEN(Column3) - 3, 4, 'XXXX')

答案 3 :(得分:0)

我对晚会有点晚了,但是我很乐意贡献力量,所以让我们从另一个角度来试试吧,因为我们可能只需要ssn的生日,对吗? (做出假设,开枪)

SELECT LEFT(SOCIALNUM,6)+'****',* 
FROM CLIENT
WHERE CLIENTTYPE = '12'

答案 4 :(得分:0)

尝试一下,

SELECT替换(名称,右(Ltrim(rtrim(名称)),4),'XXXX'),名称   来自[dbo]。[员工]