String değer içindeki sayılar

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
akgun83
Üye
Mesajlar: 106
Kayıt: 26 Eyl 2003 11:34

String değer içindeki sayılar

Mesaj gönderen akgun83 »

Merhabalar ben varchar tipindeki bir alanda bulunan string in içinde -varsa-
olan sayıyı çekmek istiyorum. bir adet -ama belki birden fazla basamaklı-
sayı var. yalnız bunu mutlaka ve sadece t-sql ile yapmalıyım.
"her ayın 15inde" cümlesinden çekmek istediğim değer:"15"
"23ünde" cümlesinden çekmek istediğim değer:"23"
"her ay 12" cümlesinden çekmek istediğim değer:"12" gibi...

yardımlarınız için şimdiden teşekkürler
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

ben ms sql server için yazmıştım böyle bişey:

Kod: Tümünü seç

--KULLANIMI: select dbo.TOINT('+15')  
--DÖNEN SONUÇ: 15
--GÖNDERİLEN İFADEDEN SADECE RAKAMLARI SEÇER

ALTER    FUNCTION TOINT(@SINT VARCHAR(15))
RETURNS INT
AS BEGIN
 DECLARE @SONUC VARCHAR(15)
 DECLARE @I TINYINT

 SET @SONUC = ''
 SET @I = 1
WHILE @I < LEN(@SINT)+1
BEGIN
  IF (SUBSTRING(@SINT,@I,1) IN ('0','1','2','3','4','5','6','7','8','9')) 
   SET @SONUC = @SONUC + SUBSTRING(@SINT,@I,1) 
  SET @I = @I + 1
END
  IF @SONUC = NULL OR @SONUC = '' 
  SET @SONUC = '0'
  RETURN CONVERT(INT,@SONUC)
END

Cevapla