Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 28/11/2006, 12:48   #1 (permalink)
Üye
 
sadist_sniper Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: Ankara
Mesaj: 496
Varsayılan CASE kullanımı hakkında

arkadaşlar, şöyle birşey yapmak istiyorum
mesela bir koşul sağlanmazsa
o satırı select etmesin
bunu nasıl yaparım?

Kod:
select 
case id
when id = 1 then 1
else
'satırı select etme'
end
from tablo
gibi birşey
__________________
Eğer insanlar kendilerini yaralayacak güce sahipse, neden kendilerini iyileştirecek güce sahip olmasınlar ki!!!
sadist_sniper hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 13:16   #2 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

bunu yapmanın en kolay yolu WHERE koşul deyimini kullanmak sanırım
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 15:36   #3 (permalink)
Üye
 
sadist_sniper Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: Ankara
Mesaj: 496
Varsayılan

malesef cast ettiğin değeri where ile koşullayamıyorsun
denedim
__________________
Eğer insanlar kendilerini yaralayacak güce sahipse, neden kendilerini iyileştirecek güce sahip olmasınlar ki!!!
sadist_sniper hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 16:08   #4 (permalink)
Luke is back...
 
mkarabulut Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2002
Yer: ../Dark_Side
Mesaj: 2,443
Varsayılan

Bir de "CASE id WHEN THEN" şeklinde değil de "CASE WHEN .. THEN " formatında dener misin ? Yani CASE anahtar kelimesinden sonra id alanını yazmadan.
__________________
Do or do not. There is no try.
mkarabulut hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:16   #5 (permalink)
Üye
 
sadist_sniper Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: Ankara
Mesaj: 496
Varsayılan

denedim, olmadı
yine o alanlar geliyor ama boş
__________________
Eğer insanlar kendilerini yaralayacak güce sahipse, neden kendilerini iyileştirecek güce sahip olmasınlar ki!!!
sadist_sniper hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:29   #6 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

alanın gelmemesi için
select * from tablom where alan<>istenmeyen_deger seklinde neden denemiyorsunuz?
Soruyu daha net sorsan sanırım daha faydalı cevaplar alabilirsin

select
case alan1
when 'x1' then 'secim1'
when 'x2' then 'secim2'
end from tablom
where alan1<>'x3'
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:34   #7 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

Selamlar
Esas olarak sorunun sanırım Sayı ve harf i ayırmadan kaynaklanıyor
Ve convert problemi olmadan null değerler elde edebilirsen sorunu çözeceğini düşünüyorsun. Diğer yazdıklarınıda okuduktan sonra yardımcı olabileceğim bir yöntem örneği yazıyorum.
Mssql de integer değerleri stringden ayırabileceğimiz. Benim bilebildiğim bir komut yok bunu ancak arama kriterleri üzerinde oynayarak gerçekleştirebiliriz.
Bunun yolu olarakta ben like işlemiyle bir çözüm geliştirebileceğimizi düşündüm.
like karekter karekter arama olanağı sunmakta buda bize bir çözüm şansı sunar diye düşünüyorum.
Bu nedenlede ister case ile ama buna gerek yok sanıyorum isterse where alanında bu filitrelemeyi gerçekleştirebiliriz.
Ben anlamda her iki alandada kullanabileceğimiz bir yol öneriyorum. Eğer karekter sayısı len ile alınıp işlem yapılırsa yani satır dijit sayısına göre case kullanmak daha mantıklı olabilir. Satır sayısı şuysa like olarak bunu değilse şunu gibi
SELECT case when SayiHarf like '[0-9][0-9][0-9][0-9][^a-z]%' then SayiHarf end
FROM Harf
where SayiHarf like '[0-9][0-9][0-9][0-9][^a-z]%'

Kolay Gelsin
Sevgilerimle
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:36   #8 (permalink)
Üye
 
sadist_sniper Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: Ankara
Mesaj: 496
Varsayılan

Alıntı:
zuzuu, mesajından alıntı: Mesajı Gör
alanın gelmemesi için
select * from tablom where alan<>istenmeyen_deger seklinde neden denemiyorsunuz?
Soruyu daha net sorsan sanırım daha faydalı cevaplar alabilirsin

select
case alan1
when 'x1' then 'secim1'
when 'x2' then 'secim2'
end from tablom
where alan1<>'x3'

çok güzel söylüyosun da şöyle bir sorun var
sen o where condition'ını tabloları join ettikten sonra, verileri select ile almak için yapıyosun
bense şöyle yapıyorum
Kod:
SELECT vxd.ID,
	   (CASE
          WHEN vxd.deger_tr IS NOT NULL
             THEN (CASE
                      WHEN CAST (vxd.deger_tr AS DECIMAL)> 0
                         THEN CAST (vxd.deger_tr AS DECIMAL)
                      ELSE NULL
                   END
				
                  )
       END) as murat_tu
  FROM versiyon_x_dokumantpknyaln vxd, dokumantipikunyealani dtka
 WHERE vxd.dokumantipikunyealani_id = dtka.ID
   AND dtka.dokumantipialanturu_id = 2
   AND vxd.dokumantipikunyealani_id = 73
   AND vxd.aktif = 1
   AND vxd.deger_tr IS NOT NULL
burada "ELSE NULL" yazdığım yer, elemanları null olarak getiriyor, bilmem anlatabildim mi
__________________
Eğer insanlar kendilerini yaralayacak güce sahipse, neden kendilerini iyileştirecek güce sahip olmasınlar ki!!!
sadist_sniper hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:41   #9 (permalink)
Eski Cevizci
 
zuzuu Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Mesaj: 289
Varsayılan

ELSE NULL yazan kısmı kaldırırsanız sanırım sorun cozulur
zuzuu hatta değil   Alıntı Yaparak Yanıtla
Eski 28/11/2006, 17:42   #10 (permalink)
Üye
 
sadist_sniper Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: Ankara
Mesaj: 496
Varsayılan

denedim, birşey fark etmiyor
__________________
Eğer insanlar kendilerini yaralayacak güce sahipse, neden kendilerini iyileştirecek güce sahip olmasınlar ki!!!
sadist_sniper hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Java Domain-use case diagramları hakkında muzz81x Java / JSP 0 29/11/2006 01:31
ssl kullanımı hakkında some_plus PHP 1 07/10/2006 01:13
Switch - Case kullanımı dehamurat PHP 15 25/09/2006 18:30
Wireless lan ve kullanımı hakkında... Grishnak Ağ / Güvenlik 5 16/08/2005 22:49
instr() kullanımı hakkında selected ASP 2 23/06/2005 10:52


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 03:31.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net