Forum

Cümledeki Kelimeler...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Cümledeki Kelimeleri Ayırarak * Koyma

9 Yazılar
3 Üyeler
0 Likes
3,541 Görüntüleme
(@mehmetsucu)
Gönderiler: 85
Estimable Member
Konu başlatıcı
 

Merhabalar,

Tablomda Adı ve Soyadı ayrı satırlarda tutuyorum. Kişilerin iki adı ya da soyadı olabiliyor. Ben ilk üç karakterden sonrakilere * işareti koymak istiyorum. 

Kelimeleri ayırıp * koyuyorum fakat tabloda 2 kelime ya da 4 kelime isim soyisim olunca verim bozuluyor.Tek satırda nasıl yazılabilir?

Örneğin: Adi+''+Soyadi

1. Ferhan Güney Bayrak Sultan

2. Hasan Gönül

3. Hüseyin Halil Göktürk

 

Sonuç:

Fer Gün Bay Sul

Has Gön

Hüs Hal Gök***

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/12/2019 12:02

(@bugraparlayan)
Gönderiler: 324
Üye
 

Selamlar,

Bu işlemi sorgu ile yapmak yerine veri tabanı özelliklerini kullanmanız daha iyi olacak. Örneğin siz ilk 3 karakterden sonra yıldız gelsin demişssiniz. İsmi üç harfli olanlarda ( ece , eda , ali , Nil vb. ) sorun olacaktır.

Size önerim, Oracle için DBMS_REDACT , Mssql için dynamic data masking konularını incelemeniz. 

https://oracle-base.com/articles/12c/data-redaction-12cr1
https://blog.toadworld.com/what-are-the-gdpr-rules-and-how-do-these-apply-to-the-dba

Oracle ACE Associate - Türkiye Hayat & Emeklilik

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/12/2019 14:04

(@vedatozerr)
Gönderiler: 63
Trusted Member
 

Selamlar,

Alternatif olarak aşağıdaki sorguyu deneyebilir misiniz. 



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('<C>' + REPLACE(@ISIM,' ','</C><C>') + '</C>' 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

حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]

 
Gönderildi : 01/12/2019 14:24

(@mehmetsucu)
Gönderiler: 85
Estimable Member
Konu başlatıcı
 

@bugraparlayan teşekkürler. DB de maskeleme yapıyorum hash atıyorum. Bu tek seferlik lazım bana. Raporlama yapacağım web e.

 

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/12/2019 15:19

(@mehmetsucu)
Gönderiler: 85
Estimable Member
Konu başlatıcı
 

Selamlar @vedatozerr

Yarın deneceğim, teşekkürler.

 

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 01/12/2019 15:19

(@mehmetsucu)
Gönderiler: 85
Estimable Member
Konu başlatıcı
 

Destekleriniz için teşekkürler fakat sorunumu çözmedi.

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 02/12/2019 09:37

(@vedatozerr)
Gönderiler: 63
Trusted Member
 

 Mehmet bey,

Sorgunun verdiği sonucu paylaşabilir misiniz.

Mümkünse resim                                                                                                                                                                          

Bu ileti 4 yıl önce Vedat Özer tarafından düzenlendi

حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]

 
Gönderildi : 02/12/2019 09:38

(@mehmetsucu)
Gönderiler: 85
Estimable Member
Konu başlatıcı
 

Teşekkür ederim @vedatozerr 

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 02/12/2019 11:04

(@vedatozerr)
Gönderiler: 63
Trusted Member
 

Rica Ederim,

Yukarıda kodu eklerken bir boşluk eklemeyi unutmuşum kodun güncel hali aşağıdadır.                                        

 

حَسْبُنَا اللهُ وَنِعْمَ الْوَكِيلُ
Allah bize yeter, O ne güzel vekildir.
Antalya
[email protected]

 
Gönderildi : 02/12/2019 12:14

Paylaş: