2016-03-30 15 views
-2

Yalnızca iç sütun değerlerini "YES" ile gösteren bir sorguyu nasıl yazmalıyım? Belirli bir sütunu görüntüleyen SQL

Hospital_ID MATERINITY ENT DERMATOLOGY ORTHOPEDICS 
      1 YES   NO NO   NO 
      2 YES   YES NO   NO 
      3 YES   YES NO   YES 

aradığım sonuç

Hospital_ID "3" dir: "HAYIR" değeri ile sütun göstermez

Hospital_ID MATERINITY ENT ORTHOPEDICS 
      3 YES   YES YES 

.

+0

Ben imagur.com içeriği göremez. Mevcut sorgunuz nedir? Lütfen "SELECT ..." ifadesini başlatan ifadeyi gönderin. Tablo (lar) için DDL de yardımcı olabilir. – lit

+1

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –

+1

İsterseniz sütunları hariç tutmak için istemcinizde yapmanız gerekir, sütunları filtrelemek için SQL sözdizimi yoktur. – dnoeth

cevap

0

sadece o HAYIR olduğunda dermatoloji sütununu dışlamak için aradığınız Eh eğer

SELECT * 
FROM TableName 
WHERE MATERINITY = "YES" AND 
     DERMATOLOGY = "YES" AND 
     ORTHOPEDICS = "YES" 
+2

'MATERINITY =" EVET "' çalışmaz. '" YES ", bir tanımlayıcıdır (ör., Bir sütun adı). Dizeler, SQL'de tek tırnak içine alınmalıdır: '' YES'' –

+0

Bu, dermatoloji sütununu da içermez. OP gerçekten istediği buysa. –

0

deneyin ve NO olmanın diğer sütunların herhangi umurumda değil (hepsi HAYIR olmadıkça) daha sonra olurdu: DERMATOLOJİ HAYIR ama bir 'EVET' değeri ile başka bir sütun var burada size sadece satırları verecekti

SELECT Hospital_ID, MATERNITY, ENT, ORTHOPEDICS, 
FROM DepartmentTable 
WHERE DERMATOLOGY = 'NO' AND (MATERNITY = 'YES' OR ENT = 'YES' OR ORTHOPEDICS = 'YES'); 

. Tüm sütunların "HAYIR" olduğu sonuçlar istemediğini varsayıyorum.

0

Özellikle birden çok hastane eklediğinizde, sütunları düşürmeye çalışırken sorun yaşarsınız. Yess'i sendika sorgusuyla satır olarak yapmanızı öneriyorum, sonra raporunuzda çapraz bağlantı yapabilirsiniz.

SELECT Hospital_ID, 'MATERNITY' Dept FROM myTable t WHERE t.MATERNITY='YES' 
UNION SELECT Hospital_ID, 'ENT' Dept FROM myTable t WHERE t.ENT='YES' 
UNION SELECT Hospital_ID, 'DERMATOLOGY' Dept FROM myTable t WHERE t.DERMATOLOGY='YES' 
UNION SELECT Hospital_ID, 'ORTHOPEDICS' Dept FROM myTable t WHERE t.ORTHOPEDICS='YES' 

hastane id = 3 için filtre gerekiyorsa

sonra yapın:

SELECT Hospital_ID, Dept FROM (
SELECT Hospital_ID, 'MATERNITY' Dept FROM myTable t WHERE t.MATERNITY='YES' 
UNION SELECT Hospital_ID, 'ENT' Dept FROM myTable t WHERE t.ENT='YES' 
UNION SELECT Hospital_ID, 'DERMATOLOGY' Dept FROM myTable t WHERE t.DERMATOLOGY='YES' 
UNION SELECT Hospital_ID, 'ORTHOPEDICS' Dept FROM myTable t WHERE t.ORTHOPEDICS='YES') x 
WHERE Hospital_ID=3 
İlgili konular