IF (SELECT COUNT(*) FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'FN_KARAKTERSIFRELE') AND XTYPE IN (N'FN', N'IF', N'TF'))>0
BEGIN
DROP FUNCTION [dbo].[FN_KARAKTERSIFRELE]
END
GO
CREATE FUNCTION FN_KARAKTERSIFRELE (@ISIM NVARCHAR(4000),@KARAKTER INT,@YILDIZSAYISI INT)
RETURNS NVARCHAR(4000)
AS
Begin
---=== @ISIM >>>> Değişkeni ismin kendisini alacak
---=== @KARAKTER >>> İsimden kaç tane karakter alınacak
---=== @YILDIZSAYISI >>> Karakterden sonra eklenecek yıldız sayısı
DECLARE @SONUC NVARCHAR(4000) ;
DECLARE @TABLOM TABLE (SATIRNO INT IDENTITY(1,1) ,ID INT,ISIM NVARCHAR(4000))
INSERT INTO @TABLOM
SELECT 1 ID,T.C.value('.', 'VARCHAR(4000)') AS ISIM
FROM (SELECT CAST('' + REPLACE(@ISIM,' ','') + '' AS XML) AS X) AS A
CROSS APPLY X.nodes ('/C') AS T(C)
SELECT
@SONUC=
stuff((select ' '+CASE WHEN LEN(ISIM)>=@KARAKTER
THEN SUBSTRING(ISIM,1,@KARAKTER)+''+REPLICATE('*', @YILDIZSAYISI)
ELSE ISIM END
FROM @TABLOM n WHERE n.ID = n.ID ORDER BY N.SATIRNO ASC FOR XML PATH('')), 1, 2, '')
FROM @TABLOM AS T
GROUP BY ID
RETURN @SONUC
END
go
DECLARE @ISIMLER TABLE (ISIM NVARCHAR(4000))
INSERT INTO @ISIMLER
VALUES('Ferhan Güney Bayrak Sultan'),('Hasan Gönül'),('Hüseyin Halil Göktürk')
SELECT *,dbo.FN_KARAKTERSIFRELE(ISIM,'3','3')SONUC FROM @ISIMLER