2016-06-06 2 views
1

postgres보기에서 시간이 청동 시대 인보기를 추가하려고합니다. 문제는 여러 종류의 청동기가 있다는 것입니다 (예 : 청동기의 초기와 청동기의 늦음). 와일드 카드를 사용하여 모든 청동기 시대를 찾으려고했지만 잘못된 것을하고 있습니다.postgresql에서 와일드 카드로 검색

나는 열 temporal_abr에 다음과 같은 데이터를 가지고 :

Bronze_age laat: 1100 - 800 vC 
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC 
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC 
Iron_age late: 250 - 12 vC 
Medieval late: 1050 - 1500 nC and Bronze_age late: 1100 - 800 vC 

내가 Bronze_age이있는 모든 기록을 싶어. 나는 bronze_age 사이에 공간이 늦게 있다는 것을

CREATE OR REPLACE VIEW dans_tijd AS 
    SELECT import_tijd.dans_code, 
    import_tijd.temporal_abr, 
    geom_tijd.geom AS geometry, 
    FROM import_tijd 
    JOIN geom_tijd ON import_tijd.dans_code = geom_tijd.dans_code 
    where import_tijd.temporal_abr LIKE 'Bronze_age%' 

염두에 두어야 다음과 같은 SQL이 작업을 수행 할 수 trief. 누군가 나를 도울 수 있습니까? 대신 *

+0

사용'%'대신'의 응답 *' – Elad

+0

덕분에, 난 당신이 한 말에 변경되었지만 나는 아직도 어떤 결과를 얻을니까. 공간에 문제가 있습니까? –

+0

@ B.Termeer는 표의 샘플 데이터, 얻는 결과 및 얻을 것으로 예상되는 것을 제공합니다. – Elad

답변

1

사용 % 그렇지 않으면 당신은 Manual refrence

에 대해 읽을 수 있습니다 LIKE

를 사용, 문자는 대소 문자를 구분 경우 =ILIKE에 또는 LIKE

WHERE import_tijd.temporal_abr ILIKE 'bronze_age%' 

ILIKE가 변경

E DIT : 샘플 데이터 다음은

WHERE import_tijd.temporal_abr ILIKE 'bronze_age%' 

줄 것이다 : 당신은 시작 부분에서 %을 추가하는 경우

Bronze_age laat: 1100 - 800 vC 
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC 
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC 

, 당신은 텍스트 bronze_age을 포함 모든 것을 얻을 것이다.

WHERE import_tijd.temporal_abr ILIKE '%bronze_age%' 

가 제공됩니다

Bronze_age laat: 1100 - 800 vC 
Bronze_age late 1100 - 800 vC and Iron_age: 800 - 12 vC 
Bronze_age: 2000 - 800 vC and Iron_age: 800 - 12 vC 
Medieval late: 1050 - 1500 nC and Bronze_age late: 1100 - 800 vC