Anasayfa / Yazılım / SQL / Contains Deyimi

Contains Deyimi

Contains deyimi ile herhangi bir veri alanı içindeki veride istediğimiz, belirtmiş olduğumuz verinin geçip geçmediğini kontrol edebiliriz. Kullanımı şu şekildedir :

SELECT kolon1, kolon2 FROM tablo WHERE CONTAINS (indekslenmiş kolon, aranan ifade)

Örneklerle yazıma devam ediyorum. AdventureWorks veri tabanı üzerinde çalışıyorum.

SELECT FileName FROM Production.Document 
WHERE Contains(Document,'important');

241201

Bu sorgu ile demek istediğim şu Production.Document tablosunda yer alan doküman içeriğinde important deyimi geçen dokümanların FileName alanını göster.

SELECT FileName, DocumentSummary FROM Production.Document
WHERE Contains(Document,' "service guidelines " ') 
AND DocumentLevel = 2;

241202

Bu seferde service guidelines geçen dokümanı aradık.

CONTAINS deyimini çoklu kullanımlar için yani AND, AND NOT, OR, NEAR gibi deyimlerle de kullanabiliriz.

SELECT FileName, DocumentSummary FROM Production.Document
WHERE Contains(DocumentSummary, 'bicycle 
AND reflectors');

DocumentSummary’de bicycle ve reflectors aradık. Her ikisi de geçme şartı arandı.

241203

SELECT FileName, DocumentSummary FROM Production.Document
WHERE CONTAINS(DocumentSummary, 'bicycle 
AND NOT reflectors');

241204

Bu sefer documentsummary içinde bicycle geçen ancak reflector geçmeyenleri listeledik.

SELECT FileName, DocumentSummary FROM Production.Document
WHERE CONTAINS(DocumentSummary, 'maintain NEAR bicycle 
AND NOT reflectors');

Bu sefer maintain yakınlarında bicycle ama reflectors olmayan DocumentSummary aradık.

241205

Tek bir CONTAINS ile birden fazla kolon üzerinde de arama yapabiliriz. İstenirse tabi birden fazla da kullanılabilir. Aynı zamanda ilgili tablonun tüm alanlarında arama yapmak istersek de asterisk yani * ile bu durumu da belirtebiliriz. Kullanım örnekleri : Bu 3 sorguda aynı sonucu geri döner.

SELECT FileName, DocumentSummary FROM Production.Document
WHERE CONTAINS((DocumentSummary, Document),'maintain');
SELECT FileName, DocumentSummary FROM Production.Document
WHERE CONTAINS((DocumentSummary),'maintain') 
OR CONTAINS((Document),'maintain')
SELECT FileName, DocumentSummary 
FROM Production.Document 
WHERE CONTAINS(*,'maintain');

241206

Production.ProductReview tablosunda Comments kolonunda socks ifadesi geçen satırların ProductID ve Comments kolonlarını listeleyelim.

SELECT ProductID,Comments FROM Production.ProductReview 
WHERE CONTAINS(Comments,'socks');

241207

Production.Document tablosundan herhangi bir kolonunda reflector ifadesi geçen tüm satırların Title ve FileName kolonlarını listeleyelim.

SELECT Title,FileName FROM Production.Document 
WHERE CONTAINS(*,'reflector');

241208

Bir önceki sorgu ile benzer ancak bu sefer kolonlarda Seat ifadesi geçenler listelenmesin.

SELECT Title,FileName FROM Production.Document 
WHERE CONTAINS(*,'reflector AND NOT seat');

241209

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir