2013-09-22 20 views
0

我有這些WHERE條件的VIEW。我想在第三行添加另一種類型 我還希望像「FR」那樣的行有一種方法可以在LIKE子句下有這樣的組?需要在IBM i上添加LIKE子句SQL

ASTDTA.ICPRTMIA.IARCC9='ACS' AND   
ASTDTA.OEINDLID.IDCOM#='001' AND   
ASTDTA.OEINDLID.IDPRT# LIKE 'ACS%' AND 
ASTDTA.ADRESSAD.ADSFX# =     
SUBSTR(ASTDTA.OEINDLID.IDGRC#,9,3  

回答

2

使用OR條件:

ASTDTA.ICPRTMIA.IARCC9='ACS' AND   
ASTDTA.OEINDLID.IDCOM#='001' AND   
(ASTDTA.OEINDLID.IDPRT# LIKE 'ACS%' OR ASTDTA.OEINDLID.IDPRT# LIKE 'FR%') AND 
ASTDTA.ADRESSAD.ADSFX# =     
SUBSTR(ASTDTA.OEINDLID.IDGRC#,9,3  
1

如果你只得到了圖案一小撮,然後用JamesA的答案。但是,如果你發現你有一堆,然後把你的模式放在一個表或臨時表中,或者可能只是一個普通的表表達式和一個values語句。我們稱之爲規則。現在你可以加入它,並說

ASTDTA.OEINLID.IDPRT# LIKE RULES.PATTERN 
+1

但確保Rules.Pattern是一個VARCHAR或您的規則必須用%符號填充右邊。 – jmarkmurphy

+0

@jmarkmurphy:這種填充只有在從變量構造LIKE條件時才需要。使用字面常量,這不是問題。我從來沒有挖掘爲什麼它有所作爲。 – user2338816

+0

好,因爲答案是關於使用列的模式,而不是一個文字......無論如何,它對固定長度的字符變量或列是有區別的,因爲字段末尾的空格成爲類似模式的一部分。因此,如果一個varchar(5)列和一個char(5)列都包含'ABC%',那麼類似於varchar列的模式將會是'ABC%',而具有char列的類似模式將會是'ABC %''看到區別?只有varchar模式纔會匹配'ABCDE'char模式只會匹配以'ABC'開頭且尾部空白的字符串! – jmarkmurphy