문제

나는 진행중인 SQL에서 이와 같은 일을하려고 노력하고 있습니다 (이것은 포스트 그레가 아닙니다!)

SELECT
    CASE WHEN code LIKE '%foo%' THEN 'Y' ELSE 'N' END as foo
FROM
    bar

그러나 진행 상황은 같은 연산자를 지원하지 않습니다. INSTR 작업을 수행 할 수있는 것처럼 보이지만 진행중인 DB에서 지원되지 않는 진행 확장입니다. 표준 ODBC 기능을 사용하여이를 달성하는 또 다른 방법이 있습니까?

감사

도움이 되었습니까?

해결책

아니요 LIKE 진행 상황 4GL의 연산자. (이있다 LIKE 키워드이지만 다른 것에 사용됩니다.) 대신 사용해야합니다. MATCHES 또는 CONTAINS 운영자. SQL 인터페이스를 사용하여 진행 한 적이 없지만 동일 할 수 있습니다.

그래서 당신은 시도 할 수 있습니다 :

SELECT
    CASE WHEN code MATCHES '*foo*' THEN 'Y' ELSE 'N' END as foo
FROM
    bar

메모 - MATCHES 용도 * 대신 와일드 카드를 위해 %.

또는:

SELECT
    CASE WHEN code CONTAINS 'foo' THEN 'Y' ELSE 'N' END as foo
FROM
    bar

다른 팁

방금이 질문을 발견하고 여전히 문제가있는 사람에게 SquirrelsQL 클라이언트를 사용하는 것이 좋습니다. 포함 된 것 같습니다

성냥 (좋아하는 것과 동일한 구문)으로 시도 할 수 있으며 아마도 효과가 있습니다.

10.0을 사용하고있는 Progress의 어떤 버전입니까? 10.1? 10.2?

4GL 세션 내에서 임베디드 SQL-89를 사용하고 있습니까? 아니면 ODBC/JDBC 연결을 통해 SQL-92를 사용하고 있습니까? "드라이버"와 악기를 참조하기 때문에 SQL-92를 사용하는 것처럼 들립니다.

어쨌든 SQL과 같은 것은 없습니다. 당신이 원하는 것을 할 수있는 악기와 찾기가 있습니다.

경기는 4GL 키워드로만 사용할 수 있습니다. SQL로 사용하려면 임베디드 SQL-89를 사용해야하지만 올바른 마음 속에 아무도 4GL 세션 내에서 SQL을 코딩하지 않습니다. 마케팅 확인란으로 만 있으며 4GL 코드를 작성하는 것은 완전히 불가능한 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top