İçeriğe geç

MSSQL – Kelimelerin İlk Harflerini Büyütmek

Selam Arkadaşlar,

Bu konuya daha önce c# alanında değinmiştim ve bir fonksiyon yayınlamıştım. Ancak buradaki olay biraz daha farklı.

Bu sefer olay tamamen MSSQL içerisinde cereyan etmekte. Olay şu ya da bu biçimde MSSQL içerisinde bir fonksiyon olarak tanımlanmakta ve bu kullanılarak yapılmaktadır. Hatta yazını en altında bir update örneği de paylaşıyor olacağım.

Şimdi gelelim kodumuza;

SELECT stuff((
select ' '+upper(left(T3.V, 1)) + lower(stuff(T3.V, 1, 1, ''))
from (select cast(replace((select @Word as '*' for xml path('')), ' ', '<X/>') as xml).query('.')) as T1(X)
cross apply T1.X.nodes('text()') as T2(X)
cross apply (select T2.X.value('.', 'varchar(30)')) as T3(V)
for xml path(''), type
).value('text()[1]', 'varchar(100)'), 1, 1, '');

Şimdi bu kodu bir sql fonksiyonu olarak oluşturalım;

CREATE FUNCTION [dbo].[UpperFirstCharacter]
(
@word nvarchar(500)
)
RETURNS nvarchar(500)
AS
BEGIN

RETURN stuff((
select ' '+upper(left(T3.V, 1)) + lower(stuff(T3.V, 1, 1, ''))
from (select cast(replace((select @Word as '*' for xml path('')), ' ', '<X/>') as xml).query('.')) as T1(X)
cross apply T1.X.nodes('text()') as T2(X)
cross apply (select T2.X.value('.', 'varchar(30)')) as T3(V)
for xml path(''), type
).value('text()[1]', 'varchar(100)'), 1, 1, '');

END

ve son olarak da bu fonksiyonu bir örnek ile çağırarak sonucu görelim;

select [dbo].[UpperFirstCharacter]('içerik bu alana gelecek ve işlem yapılacak...')

Sorgumuzun sonucu aşağıdaki gibi olacaktır;

İçerik Bu Alana Gelecek Ve İşlem Yapılacak...

Şimdi de gelelim bunu update ile birleştirmeye. (Bu alanda aman dikkat edelim. Zira bulk update olduğu için geri dönülemeyen sonuçlara yol açabilirsiniz. Eğer yeterince tecrübeniz yok ise anlık bir yedek alarak işlemi yapmanızı tavsize ederim.)

update Customers set [Name] = [dbo].[UpperFirstCharacter]([Name]), [Surname] = [dbo].[UpperFirstCharacter]([Surname])

İşte bu şekilde istediğiniz alandaki tüm yazıların ilk kelimelerin büyük harfe getirerek veritabanınızı düzenlemiş olursunuz…

5 1 vote
Article Rating
Tarih:Microsoft SQL ServerMSSQL Server
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x