2016-04-04 26 views
2

Seçme ifadesinde aşağıdaki kod gibi bir koşul eklemenin mümkün olup olmadığını merak ettim ve eğer öyleyse, nasıl yapmalıyım? BuSQL Select deyimindeki Listede belirli bir dizgiyi nasıl denetlenir?

SEÇ first_name benziyor

kodu persons_table GELEN last_name:

+0

İnsan nasıl bilemez: kullanılmasını filtre olarak katılmak ile başlayan exclusiveList üzerinde? Ayrı bir masada mı depolanır? Bellekte? Kullanıcının kendisi bir alan mı? –

+0

ayrı bir masada olabilir, ancak bunları seçim ifadesinde erişebildiğim bir haritaya veya listeye koymayı düşünüyorum. –

cevap

3

Yapabileceğiniz:

SELECT first_name ,last_name FROM persons_table 
WHERE last_name in (select lastName from exclusiveListTable) 

hatta daha güzel: kişi ise

select * from -- or select A.* from 
(SELECT first_name ,last_name FROM persons_table) A 
inner join 
(select lastName from exclusiveListTable) B 
on A.last_name = B.lastName 
+1

teşekkürler, neredeyse ilk örneğinizde aynı kodu düşünüyordum. Doğru kodu yazdığına sevindim! Ayrıca, ikinci örnekte yeni fikir için teşekkürler bunu denemeden önce birleşme kullanımı hakkında okumak zorundasınız :) –

+0

evet neredeyse oradaydınız :) Eğer yardımcı olsaydı - lütfen cevabı kabul etmeyi düşünün –

0

[koşulu last_name exclusiveList üzerinde NEREDE] O olmalıdır

SELECT first_name ,last_name FROM persons_table 
WHERE last_name in ('name1','name2',,,,'nameN') 
0
SELECT first_name ,last_name FROM persons_table 
WHERE last_name in (select name from table2) 

YA

senin exclusiveList başka masaya konduğu takdirde
SELECT first_name ,last_name FROM persons_table 
WHERE Exists(select top 1 name from table2 where table2.columnname=persons_table.last_name) 
-1
SELECT * FROM TABLE_NAME WHERE REGEXP_LIKE(COLUMN_NAME,'REGEXP'); 
İlgili konular