Skip Navigation LinksYazgeliştir Forumları » ADO.Net » SQL Server sağdan karakter silme!

SQL Server sağdan karakter silme!

Moderatörler: Atayİbrahim , ismailadar , kimiraikkonen , MehmetX , volkankorkmaz

                        
Sayfa 1 / 1[8Cevap]
SQL Server sağdan karakter silme!
Kullanıcı İçerik

musti_276

 
SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 11:19:07

musti_276

Üyelik Zamanı: 04-08-2009 07:52:07

Gönderi: 65

Puan: 505

Merhaba

Soru başlığıyla soru içeriği farklı. Araştırdım ama işime yarayacak bir string fonkiyona rastlamadım.

tablomun birinde şu şekilde kayıtlar var.

Genel Türk Tarihi_1
Genel Türk Tarihi_2
...
Genel Türk Tarihi_10
Genel Türk Tarihi_11

...

Matematik_1
Matematik_2
...
Matematik_10
Matematik_11
...

 

şeklinde onbinlerce kaydım var. İstediğim bu alanların sağdan başlasın ve altçizgiyi yi bulduğunda _ de dahil sağa doğru silsin. yani ben sorgumu çalıştırdığımda distinct komutuyla beraber

 

Genel Türk Tarihi
Matematik
Türkçe
Geometri
Edebiyat

 

olarak çekmek istiyorum. Bunu çözecek bir fonksiyon varmıdır?


1#

ismailadar

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 11:34:28
Bu cevap çözüm olarak işaretlendi.

ismailadar

Üyelik Zamanı: 01-07-2009 16:40:45

Gönderi: 309

Puan: 3182

Merhaba,

aşaıdaki fonksiyon ile yapabilirsiniz.

LEFT(kolonadi,CHARINDEX('_',kolonadi)-1)


İsmail ADAR

SQL Server / İş Zekası Teknolojileri Moderatörü

SQL Server 2016 Kitabımı incelediniz mi?


 

 

2#

musti_276

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 11:55:53

musti_276

Üyelik Zamanı: 04-08-2009 07:52:07

Gönderi: 65

Puan: 505

LEFT(kolonadi,CHARINDEX('_',kolonadi)-1)

 

sütunda boş kayıtlar olduğu için sanırım -1 kısmı çalışmıyor. -1 i kaldırdığımda Genel_Türk_Tarihi_ şeklinde sonuç istediğim gibi oluyor ama _ ile beraber oluyor. Sütunda ki boş kayıtlar için yapabileceğimiz bir şey var mı ?

 


3#

ismailadar

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 11:57:07

ismailadar

Üyelik Zamanı: 01-07-2009 16:40:45

Gönderi: 309

Puan: 3182

case when len(kolonadi)>0 then LEFT(kolonadi,CHARINDEX('_',kolonadi)-1) else 0 end


İsmail ADAR

SQL Server / İş Zekası Teknolojileri Moderatörü

SQL Server 2016 Kitabımı incelediniz mi?


 

 

4#

musti_276

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 13:27:48

musti_276

Üyelik Zamanı: 04-08-2009 07:52:07

Gönderi: 65

Puan: 505

Conversion failed when converting the nvarchar value 'demo_sinif ' to data type int.

 

hatası alıyourm. değeri int a çevirmeye çalışyor


5#

ismailadar

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 13:30:36

ismailadar

Üyelik Zamanı: 01-07-2009 16:40:45

Gönderi: 309

Puan: 3182

Bu sekilde deneyin.

case when len(kolonadi)>0 then LEFT(kolonadi,CHARINDEX('_',kolonadi)-1) else '' end


İsmail ADAR

SQL Server / İş Zekası Teknolojileri Moderatörü

SQL Server 2016 Kitabımı incelediniz mi?


 

 

6#

musti_276

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 13:42:25

musti_276

Üyelik Zamanı: 04-08-2009 07:52:07

Gönderi: 65

Puan: 505

CHARINDEX('_',kolonadi)-1)

 

-1 i silersem yine sorun yok sonunda _ li getiriyor.. Ama -1 yazdığım zaman
Invalid length parameter passed to the SUBSTRING function. hatası veriyor :S

kusura bakmayın kaçıncı seferdir soruyorum. Teşekkürler.


7#

musti_276

 
Ynt:SQL Server sağdan karakter silme!
Gönderim Zamanı: 20-05-2013 20:30:38

musti_276

Üyelik Zamanı: 04-08-2009 07:52:07

Gönderi: 65

Puan: 505

başka bir yöntem daha buldum. Paylaşmak istedim.

substring(kolonAdi,0,charindex('_',kolonAdi) şeklinde kullanınca direk _ sonrasını da siliyor.

 

Yardımlar için teşekkürler.


8#
Sayfa 1 / 1[8Cevap]

İşaretler & Anlamları
Kilitli Kilitli
Çözüm Kabul Edildi Çözüm Kabul Edildi
Normal Normal