如何在SQL

时间:2017-03-30 16:43:26

标签: sql sql-server

我想在SQL server中执行此操作:

如果我有像Johnny English'这样的名字,

如何在查询中显示这个' J ***** E ******'?

谢谢!

2 个答案:

答案 0 :(得分:0)

假设您在此处有两列数据,并且您只需要第一个字符,但其余字符为星号。您可以使用REPLICATE执行此操作。

https://docs.microsoft.com/en-us/sql/t-sql/functions/replicate-transact-sql

declare @FirstName varchar(20) = 'Johnny'
    , @LastName varchar(20) = 'English'

select left(@FirstName, 1) + replicate('*', len(@FirstName) - 1) + ' ' + left(@LastName, 1) + replicate('*', len(@LastName) - 1)

答案 1 :(得分:0)

此代码将为第一个单词添加星标。它假定后续的单词由至少一个空格分隔

declare @test varchar(20)='Johnny English'
declare @StarNum int

set @StarNum=charindex(' ',@test)-2

select stuff(@test,2,@StarNum,replicate('*',@StarNum))