Rev 64 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/* Find package name */SELECT DISTINCTMIN(qry.DISPLAY_ORDER) OVER (PARTITION BY qry.PKG_NAME) AS DISPLAY_MIN,qry.PKG_ID,qry.PKG_NAMEFROM (/* Exact match */SELECT 1 AS DISPLAY_ORDER,pkg.PKG_ID,pkg.PKG_NAMEFROM PACKAGES pkgWHERE UPPER(pkg.PKG_NAME) = UPPER(:KEYWORD)UNION/* Starts with */SELECT 2 AS DISPLAY_ORDER,pkg.PKG_ID,pkg.PKG_NAMEFROM PACKAGES pkgWHERE UPPER(pkg.PKG_NAME) LIKE UPPER(:KEYWORD) ||'%'UNION/* Ends with */SELECT 3 AS DISPLAY_ORDER,pkg.PKG_ID,pkg.PKG_NAMEFROM PACKAGES pkgWHERE UPPER(pkg.PKG_NAME) LIKE '%'|| UPPER(:KEYWORD)UNION/* Middle of word */SELECT 4 AS DISPLAY_ORDER,pkg.PKG_ID,pkg.PKG_NAMEFROM PACKAGES pkgWHERE UPPER(pkg.PKG_NAME) LIKE '%'|| UPPER(:KEYWORD) ||'%') qryORDER BY DISPLAY_MIN, UPPER(qry.PKG_NAME)