Ho incontrato alcune query SQL in Oracle che contengono '(+)' e non ho idea di cosa significhi. Qualcuno può spiegare il suo scopo o fornire alcuni esempi del suo utilizzo? GrazieSignificato di (+) in query SQL
risposta
È sinonimo di Oracle per OUTER JOIN
.
SELECT *
FROM a, b
WHERE b.id(+) = a.id
dà stesso risultato
SELECT *
FROM a
LEFT OUTER JOIN b
ON b.id = a.id
Prenderò nota per la persona successiva, presta attenzione a ciò che è successo a 'a''s e' b' è qui. Nell'esempio la clausola from è '[a, b]', ma il controllo di equivalenza è '[b.id = a.id]'. La mia abitudine è di mantenere l'equivalenza '[a.id = b.id]'; quindi ho interpretato male l'esempio. Un'ora della mia vita non tornerò più indietro; ^) – BIBD
Per quello, interpreterò '(+)' come il modo di dire di oracolo "questo lato diventa nullo quando non si trova alcuna corrispondenza". Usando la mia norma per le equivalenze di '[a.id = b.id]'; poi succede uno specchio. Se sto riscrivendo la query per seguire lo standard moderno, '[a.id = b.id (+)]' diventa un LEFT OUTER e '[a.id (+) = b.id]' diventa un GIUSTO ESTERNO. – BIBD
La cosa è l'operatore (+) posto direttamente nell'istruzione condizionale e sul lato della tabella opzionale (quella che può contenere valori vuoti o nulli all'interno del condizionale). – Yergalem
Il + è una scorciatoia per outer join, a seconda di quale lato si indossa, indica un DESTRA o SINISTRA OUTER JOIN
Controllare la seconda voce in this forum post per alcuni esempi
IIRC, il + viene utilizzato nelle versioni precedenti di Oracle per indicare un join esterno nella sintassi di join SQL pre-ANSI. In altre parole:
select foo,bar
from a, b
where a.id = b.id+
è l'equivalente di
select foo,bar
from a left outer join b
on a.id = b.id
NOTA: questo può essere all'indietro/leggermente corretto, in quanto non ho mai usato la sintassi SQL pre-ANSI.
Viene utilizzato nelle versioni più recenti di Oracle per quelli di noi che odiano ANSI sql. –
@ Mark Brady esattamente. Sento che rende più chiara l'intenzione della domanda. E odio anche * ANSI SQL. –
Si utilizza questo per assicurare che la tabella che si sta aggiungendo non riduca la quantità di record restituiti. Quindi è utile quando ti unisci a un tavolo che potrebbe non avere un record per ogni chiave su cui stai partecipando.
Ad esempio, se si stavano unendo un cliente e di acquisto tavolo:
alla lista dei tutti i clienti e tutti i loro acquisti, si vuole fare un outer join (+) sul tavolo di acquisto modo che i clienti che non hai ancora acquistato nulla nel tuo rapporto.
- 1. Nidificazione di query in SQL
- 2. Qual è il significato SQL di 0x5E5B7D7E?
- 3. query sql in mongodb?
- 4. SQL in (@Variable) query
- 5. Quanta query SQL è troppa query SQL?
- 6. converti query SQL in stile query builder
- 7. Sql Query di aggiornamento
- 8. Uso di 1 = 2 in una query SQL
- 9. LINQ query SQL equivalente "non in (query di selezione)"
- 10. Sql query XQuery Come sostituire testo in Query di aggiornamento
- 11. Query SQL non elaborata di SQL Entity
- 12. ottenere conteggio query in SQL
- 13. Nessun duplicati in query SQL
- 14. Modifica SQL in Power Query
- 15. Cosa significano i punti in questa query SQL?
- 16. query sql dinamica in postgres
- 17. SQL-Query: EXISTS in Sottostruttura
- 18. Escaping query SQL in Codeigniter
- 19. Ottimizza query SQL in PostgreSQL
- 20. Nuova riga in Sql Query
- 21. Visualizza query SQL in Slick
- 22. Parallelizzazione di query SQL in R
- 23. Conversione di query personalizzate in SQL
- 24. Implementazione di una query ricorsive in SQL
- 25. query di aggiornamento in Spark SQL
- 26. Monitoraggio il progresso di una query SQL in SQL Server
- 27. bash FreeTDS: esecuzione di query SQL in server Microsoft SQL
- 28. SQL SELECT query di aiuto
- 29. query di escape SQL + codeigniter
- 30. SQL Server errore di query
dupe: http://stackoverflow.com/questions/430274/oracle-what-does-do-in-a-where-clause – Alkini
Ho effettivamente provato a cercare una risposta prima di pubblicare la domanda ma non ho ricevuto risultati durante la ricerca di '+' o '(+). È strano che il titolo della domanda nell'URL sembra saltare anche la parte (+). – Zabbala
Questo è un duplicato di [questo post] (http://stackoverflow.com/questions/430274/oracle-what-does-do-in-a-where-clause). Potresti trovare ulteriori informazioni lì. –