SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software
Development resources, articles, tutorials, code samples, tools and downloads for ASP.Net, SQL Server, Reporting Services, T-SQL, Windows, AWS, SAP HANA and ABAP

MS SQL Server PATINDEX T-SQL Fonksiyonu


SQL Patindex fonksiyonu ile tablonuzun bir kolonunda aradığınız belirli bir "pattern"ın konumunu belirleyebilirsiniz. Böylece "pattern"ı içinde aradığınız kolon üzerinde bulduğunuz index'e bağlı olarak string işlemler yapabilirsiniz.

T-SQL Patindex fonksiyonu, PATINDEX('%pattern%', expression) şeklinde kullanılır ve fonksiyonun dönen değeri "int" tipinde bir ifadedir.





Hemen ifade etmeliyim ki T-SQL PATINDEX fonksiyonunu sadece pattern ilgili kolonda var mı yoksa yok mu diye bir test için kullanacaksanız LIKE komutu ile arasında bir fark bulamayacaksınız. Hız açısından da iki SQL fonksiyon arasında bir fark yoktur.

Kullanıma yönelik bir fark da SQL PATINDEX fonksiyonunun nondeterministic bir fonksiyonken LIKE fonksiyonu deterministic'tir. Bu fark PATINDEX kullanılarak oluşturulmuş bir view üzerinde clustered index oluşturulmasına engeldir. Aynı zamanda PATINDEX ile oluşturulmuş bir computed-column üzerinde de index tanımlanamaz.

Örneğin @text karakter ifadesi içindeki geçen ilk numerik değeri okuyan sql cümleciği olarak aşağıdaki ifadeyi kullanabilirsiniz.

DECLARE @text nvarchar(100)
SET @text = N'dsdg fhr345ehd ghdfgh'

SELECT
 LEFT(
  RIGHT(@text, LEN(@text) - (PATINDEX(N'%[0-9]%',@text) - 1)),
  PATINDEX(
   N'%[^0-9]%',
   RIGHT(@text, LEN(@text) - (PATINDEX(N'%[0-9]%',@text) - 1))
  ) - 1
  )
Code

Eğer @text ifadesi aranılan sayısal değer ile bitiyorsa SQL LEFT fonksiyonundan hata mesajı dönecektir. Bunu önlemek için bu değişkene veya tablodan okuyorsanız kolon değerinin sonuna bir sonlandırma karakteri eklerseniz bu hatanın da önüne geçmiş olacaksınız.



SQL Server

SQL Server 2019 Installation
download SQL Server 2019
download SQL Server 2017
download SQL Server 2016
download SQL Server 2014
download SQL Server 2012
MacOS ve SQL Server 2019


Copyright © 2004 - 2021 Eralper YILMAZ. All rights reserved.