可以说我有一个“ SELECT * FROM TABLE”,它导致很多行和很多列。
如果我不想用X或*替换第三栏中的最后4个字符,该如何编写查询?
答案 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]。[员工]