Sono molto principiante allo sviluppo di query di Oracle Database. Sto sviluppando una funzionalità di ricerca per il mio progetto per cercare Negozi per Zip o Nome o Città, dove l'utente verrà fornito con "Una casella di input HTML" per inserire il termine di ricerca. C'è solo tabella denominata NegoziRicerca e visualizzazione dei risultati per rilevanza in Oracle
Le condizioni per la visualizzazione dei risultati della ricerca vengono
- Se il termine di ricerca abbinato al
ZIP
risultati dovrebbero essereGROUP
eSORT BY ZIP DESC
- Se il termine di ricerca abbinato al
NAME
risultati dovrebbero essere gruppo e ordinare perNAME IN ASC
e uguale aCITY
- Se il termine di ricerca corrisponde a
ZIP
,NAME
eCITY
(a tutti), poi la prima i risultati non corrispondenti alZIP
dovrebbe essere visualizzato inDESC order
, prossimoCITY
seguita dallaNAME
ho provato qualche cosa come questa
SELECT s.uuid AS uuid, COUNT(*) over() AS rowcount
FROM Stores s
WHERE s.postalcode LIKE '%87%'
OR s.city LIKE '%87%'
OR CONCAT(CONCAT(s.firstname, ' '),s.lastname) LIKE '%87%'
GROUP BY s.city, s.postalcode,
CONCAT(CONCAT(s.firstname, ' '),s.lastname), s.uuid
ORDER BY CASE WHEN s.postalcode LIKE '%87%'
THEN s.postalcode END DESC,
CASE WHEN CONCAT(CONCAT(s.firstname, ' '),s.lastname) LIKE '%87%'
THEN CONCAT(CONCAT(s.firstname, ' '),s.lastname)
ELSE s.postalcode END ASC,
CASE WHEN s.city LIKE '%87%'
THEN s.city END
Questa query non è visualizzazione dei risultati come previsto (intendo che sta visualizzando i risultati senza ordine, non come Primo zip, città successiva seguita da nome).
Come posso fare la query per soddisfare i requisiti di cui sopra, devo usare le stored procedure per farlo? Qualsiasi suggerimento sarà molto apprezzato.
questo suona come i compiti, contrassegnalo come tale se lo è. È anche sorprendente simile a questa domanda posta oggi: http://stackoverflow.com/questions/12564918/why-oracle-is-saying-not-a-group-by-expression – Harrison
Hai provato a mettere il 'CASE'? costruire nella clausola 'ORDER BY' nelle clausole' SELECT' e 'GROUP BY'? Prova a metterlo esattamente così e possiamo vedere i risultati. – Rachcha