select sorgusunda parantez

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
filiz
Üye
Mesajlar: 82
Kayıt: 24 Ara 2003 08:11
Konum: İzmir

select sorgusunda parantez

Mesaj gönderen filiz »

Kod: Tümünü seç

select * from personel  where grupdurumu=2 and gruplink=:grup  or (grupdurumu=1 and gruplink=:grup) and personelkodu like ''%' + Edit1.Text + '%'' '


şeklinde bi sorgum var.parametreleri duzgun olarak alıyor..ancak or dan sonra parantezi duzgun koyamadıgım için .sadece getirmesi getirmesi gereken kayıtları getirmiyor.daha fazlasını getiriyor

1.ifade grupdurumu=2 and gruplink=:grup
2.ifade or (grupdurumu=1 and gruplink=:grup)
3.ifade and personelkodu like ''%' + Edit1.Text + '%'' '
yani iki and bir or
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

select * from personel  where (grupdurumu=2 or grupdurumu=1) and (gruplink=:grup) and (personelkodu like ''%' + Edit1.Text + '%'') ' 

birde böyle dener misiniz?
filiz
Üye
Mesajlar: 82
Kayıt: 24 Ara 2003 08:11
Konum: İzmir

Mesaj gönderen filiz »

teşekkür ederim
parantezlerin yeri aşağıdaki gibi olunca sorun çözüldü
select * from personel where (grupdurumu=2 and gruplink=:grup or grupdurumu=1 and gruplink=:grup) and personelkodu like ''%' + Edit1.Text + '%'' '
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Bu şekil kullanım pek sağlıklı gelmedi bana, and ve or ları yanyana koymuşsunuz problem çıkabilir. Bence parantez kullanın
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

belki böyle daha da sadeleştirilerek yazılabilir :?:

Kod: Tümünü seç

select * from personel
where gruplink=:grup and grupdurumu in (1, 2) and personelkodu like ''%' + Edit1.Text + '%'' '
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla