Bugün bir karar aldım!
Artık günlük çalışmalarımda SQL’de karşılaştığım ufak problemlerin çözümlerini blog’umda paylaşacağım. Bunun ilki, SQL de oldukça kısıtlı bir şekilde yapılabilen STRING işlemleri ile ilgili.
Bugün, büyükçe bir tablonun bir kolonundaki son kelimeyi alıp işlemem gerekti. Birçok programlama dilinde, performanssız olsa dahi yapacağınız şeylerin başında verilen string’i boşluk karakterlerini kullanarak kelime kelime bir array içerisine almak (String().Split(char ch)), sonra da o array’in son elemanına ulaşmak gelirdi.
SQL’de ise biraz daha zahmetli bu işler. Aşağıda, verilen bir string içerisindeki son kelimeyi döndüren kısa bir kod parçası bulabilirsiniz.
DECLARE @string nvarchar(512)
SET @string = ‘ilk_kelime ara_kelime_1 ara_kelime_2 son_kelime’
DECLARE @StartIndex int
DECLARE @LastIndex int
SET @StartIndex = 1
WHILE (@StartIndex > 0)
BEGIN
SET @LastIndex = @StartIndex
SET @StartIndex = CHARINDEX(‘ ‘ COLLATE Turkish_CI_AI, @string COLLATE Turkish_CI_AI, @StartIndex + 1)
END
SELECT RIGHT(@string, LEN(@string) – @LastIndex)
