Netezza보기에서 다음 쿼리를 추출했습니다. 저장된 원래 쿼리의 레코드가 없으므로. 이 쿼리가 무엇을하는지 이해하는 방법?수정 된 쿼리 netezza를 이해하는 방법?
CASE WHEN (O.E_SRC ~~LIKE_ESCAPE('FIX.%.OrderNew'::"VARCHAR", '\'::"VARCHAR"))
THEN ADMIN."REPLACE"(ADMIN."REPLACE"(O.E_SRC, '.OrderNew'::"VARCHAR", ''::"VARCHAR"),
'FIX.'::"VARCHAR", ''::"VARCHAR")
ELSE O.E_SRC
END AS CONNECTION_ID
내가 이해하는 것은 'FIX. %. OrderNew'에 패턴 일치가 있으며 대체 할 수 있습니까? 원본 쿼리는 어떻게 저장됩니까? NVL(RNO,0)
처럼 그래서 nvl()
원래 쿼리 동등하거나 다음 네티의 다른 기능 수정 된 쿼리
CASE WHEN (O.E_SRC ~~LIKE_ESCAPE('FIX.%.OrderNew'::"VARCHAR", '\'::"VARCHAR"))
THEN ADMIN."REPLACE"(ADMIN."REPLACE"(O.E_SRC, '.OrderNew'::"VARCHAR", ''::"VARCHAR"),
'FIX.'::"VARCHAR", ''::"VARCHAR")
ELSE O.E_SRC
END AS CONNECTION_ID
당신은 천재적 인 남자입니다. 고맙습니다. !!! 그것은 경험에서 나온 것이거나 그것을 이해하는 특별한 방법이 있습니까? –
대부분 그냥 경험. 명심해야 할 점은 뷰 정의에 저장된 것이 무엇이든 CREATE VIEW 문에서 사용 된 것과 동일하다고 가정한다는 것입니다. 대부분의 경우 이것은 외관 변화를 의미합니다 (예 : :: 표현의 캐스팅). 그러나 더 복잡 할 수 있습니다. (LIKE를 좀 더 복잡하지만 LIKE_ESCAPE로 변경하는 것과 같습니다. – ScottMcG