Vai al contenuto principale

Operatore SQL OR: guida con esempi

L'operatore OR in SQL ti permette di filtrare i dati combinando più condizioni, restituendo le righe in cui almeno una condizione è vera. Scopri come usare OR con le istruzioni INSERT, UPDATE e DELETE per modificare i record nelle tabelle.
Aggiornato 29 set 2026  · 8 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

L'operatore logico OR in SQL si usa nelle query per filtrare i dati in base a più condizioni. Di solito viene utilizzato nella clausola WHERE per restituire i risultati che soddisfano le condizioni indicate. Questa funzionalità rende l'operatore OR uno strumento importante per un recupero dati flessibile.

In questo tutorial, con esempi pratici, ti mostrerò i diversi casi d'uso dell'operatore OR nelle query SQL. Se aspiri a diventare data analyst o stai iniziando con SQL, ti consiglio il corso Introduction to SQL di DataCamp per imparare le basi. Anche la SQL Basics Cheat Sheet ti aiuterà a consultare rapidamente operatori e funzioni comuni per interrogare tabelle, filtrare e aggregare dati.

Che cos'è l'operatore OR in SQL?

L'operatore OR in SQL si usa tipicamente con la clausola WHERE per filtrare i dati. Quando lo usi in una query, l'operatore OR filtrerà i dati includendo le righe in cui almeno una delle condizioni specificate è vera.

La seguente query restituirà tutti i record dalla tabella employees che appartengono al reparto HR oppure con stipendio superiore a 60.000 $. Se una riga soddisfa una o entrambe le condizioni, sarà inclusa nei risultati.

-- Select rows where the department is either 'HR' OR salary greater than 60,000
SELECT *
FROM employees
WHERE department = 'HR'
OR salary > 60000;

Esempio di output di tabella filtrato usando l'operatore OR in SQL

Esempio di output di tabella filtrato usando l'operatore OR in SQL. Immagine dell'autore.

Dai un'occhiata al corso Intermediate SQL di DataCamp per saperne di più sull'operatore OR e su altri operatori usati per il filtraggio condizionale dei dati.

Sintassi dell'operatore OR in SQL

L'operatore OR è semplice da usare e da integrare nelle query SQL. Di seguito trovi la sintassi di base quando è usato nell'istruzione SELECT.

SELECT column1, column2, ...
FROM table_name
WHERE condition1
OR condition2
OR condition3;

Nota che puoi usare più di una condizione OR nella clausola WHERE.

Uso di base nell'istruzione SELECT

L'operatore OR si usa nell'istruzione SELECT per restituire i record che soddisfano una qualsiasi delle condizioni fornite. Questo rende l'operatore OR utile quando vuoi recuperare record senza scrivere query multiple e complesse.

Nell'esempio seguente, l'operatore OR filtra tutti i record dei dipendenti per chi si trova a "New York" o a "Los Angeles".

-- Select employeees from New York or Los Angeles city
SELECT first_name, last_name, city
FROM employees
WHERE city = 'New York'
OR city = 'Los Angeles';

Combinare OR con AND in SQL

L'operatore OR può essere combinato con l'operatore AND per creare condizioni più complesse in una query SQL. Quando si usano sia OR sia AND, si impiegano le parentesi per controllare l'ordine delle operazioni.

Considera la seguente query: vogliamo selezionare tutti i dipendenti del reparto IT e che vivono a "New York" (come una singola condizione), oppure che guadagnano più di 70.000 $. Le parentesi raggruppano la condizione con AND per valutarla come un'unità prima di applicare l'operatore OR.

-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Grouping IT department in New York
WHERE (department = 'IT' AND city = 'New York')
-- Employees with salary over 70,000
OR salary > 70000;

Esempio di output di tabella filtrato combinando gli operatori OR e AND.

Esempio di output di tabella filtrato combinando gli operatori OR e AND. Immagine dell'autore.

La query sopra valuta e restituisce i record di:

  • Dipendenti che lavorano nel reparto IT e vivono a New York.

  • Oppure qualsiasi dipendente che guadagni oltre 70.000 $, indipendentemente dal reparto o dalla città.

Quando combini l'operatore OR con l'operatore AND, dovresti raggruppare correttamente le condizioni con le parentesi. Un errore qui può portare a errori logici e restituire risultati indesiderati.

Se non usi le parentesi nella query, la condizione AND verrà valutata prima della condizione OR. Usare correttamente le parentesi raggruppa esplicitamente la condizione e assicura che venga seguito l'ordine di valutazione previsto.

Esempi dell'operatore OR in SQL

L'operatore OR può essere usato in diverse query SQL per recuperare record o manipolare i dati nel database. Di seguito trovi esempi dei casi d'uso dell'operatore OR.

Filtrare i dati con più condizioni

L'operatore OR è usato principalmente per filtrare i record in base a due o più condizioni. Questo metodo è importante quando vuoi ampliare i criteri di ricerca nel database. Il seguente esempio filtra e restituisce i record dei dipendenti che provengono da New York City o che guadagnano più di 80.000 $.

-- Select columns
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Employees in New York City
WHERE city = 'New York'
-- Employees with salary over 80,000
OR salary > 80000;

Uso dell'operatore OR nelle istruzioni INSERT

Puoi usare l'operatore OR con le istruzioni INSERT per inserire nuovi record nella tabella se soddisfano la condizione specificata. Nell'esempio seguente, la query inserirà un nuovo record nella tabella employees se il dipendente è nel reparto HR oppure se guadagna più di 60.000 $. La query seguente è valida per i database SQL Server, MySQL e PostgreSQL.

-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
 -- First condition: department is 'HR'
WHERE 'HR' = 'HR' 
 -- Second condition: salary is greater than $60,000
   OR 62000 > 60000;

Nel database Oracle, l'istruzione INSERT è diversa e richiede una clausola FROM che usa la tabella dual, una tabella speciale a una riga e una colonna fornita nel database. Segui il nostro corso Introduction to SQL Server se lavorerai specificamente con SQL Server.  

-- Insert a new record into the 'employees' table
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
FROM dual
WHERE 'HR' = 'HR'  -- First condition: department is 'HR'
   OR 62000 > 60000;  -- Second condition: salary is greater than $60,000

Uso dell'operatore OR nell'istruzione UPDATE

L'istruzione UPDATE in SQL si usa per modificare i record esistenti in una tabella. Puoi usare l'operatore OR nell'istruzione UPDATE per modificare questi record in base a più condizioni, cambiando solo quelli che le soddisfano.

Nell'esempio seguente, usiamo l'operatore OR per aggiornare lo stipendio del dipendente se è nel reparto Finance o se vive a Chicago.

-- Update the salary for the employee
UPDATE employees
-- Increase salary by 10%
SET salary = salary * 1.1  
-- First condition: department is 'Finance'
WHERE department = 'Finance' 
 -- Second condition: employees in Chicago City
OR city = 'Chicago';

Uso dell'operatore OR nell'istruzione DELETE

Analogamente, l'istruzione DELETE in SQL si usa per rimuovere i record esistenti da una tabella. Puoi usare l'operatore OR con l'istruzione DELETE per rimuovere i record da una tabella in base a condizioni specifiche.

La query seguente rimuoverà i record dalla tabella employees in cui il dipendente proviene da Chicago o guadagna 60.000 $.

-- Delete records from the 'employees' table
DELETE FROM employees
-- First condition: employees from Chicago
WHERE city = 'Chicago'
-- Second condition: employees earning 60000
OR salary = 60000;

Considerazioni sulle prestazioni delle query SQL con OR

Quando lavori con dataset di grandi dimensioni, potresti riscontrare problemi di prestazioni con l'operatore OR. Questo può rallentare le operazioni durante il filtraggio dei record da dataset estesi. Di seguito trovi i problemi di performance più comuni e come mitigarli.

Full table scan

Quando usi l'operatore OR su dataset grandi, spesso vengono eseguiti full table scan, soprattutto se non c'è un adeguato indice. Questo può rallentare l'esecuzione della query, poiché la valutazione avviene riga per riga. Per evitare il problema, indicizza le colonne necessarie in modo che il motore del database possa trovarle più facilmente e velocizzare la scansione.

Valutazione di condizioni complesse

Quando usi l'operatore OR per valutare più condizioni in una tabella, la query può diventare sensibilmente più lenta, soprattutto se non è correttamente indicizzata. Con condizioni OR complesse, ristrutturare la query in parti più piccole, ad esempio usando sottoquery, può aiutare a migliorarne le prestazioni.

Condizioni ridondanti

Includere condizioni OR non necessarie può rallentare l'esecuzione, poiché devono essere valutate tutte. Usare solo le condizioni OR necessarie e quelle con maggiore probabilità di essere vere aiuta a semplificare e migliorare le prestazioni della query.

Alternative all'operatore OR

Se riscontri problemi di performance con l'operatore OR, puoi considerare le seguenti alternative per filtrare i dati in base a più condizioni.

Uso dell'operatore UNION

L'operatore UNION si usa principalmente per combinare i risultati di due o più istruzioni SELECT quando è richiesto un diverso indexing. Nella query seguente, l'operatore UNION combina le operazioni per filtrare e restituire i record dei employees del department IT della city di New York. Leggi il nostro tutorial UNION vs UNION ALL in SQL se non hai ancora familiarità con UNION. 

-- Use UNION instead of OR for better performance
SELECT first_name, last_name, department, city
FROM employees
-- First condition
WHERE department = 'IT'  
UNION
SELECT first_name, last_name, department, city
FROM employees
-- Second condition
WHERE city = 'New York'; 

Uso delle istruzioni CASE

L'istruzione CASE è un'importante alternativa all'operatore OR se vuoi includere condizioni logiche nella query. L'istruzione CASE può migliorare le prestazioni della query grazie alla sua esecuzione ottimale. La query seguente usa CASE per categorizzare i reparti in base a più condizioni.

-- Select first name, last name, and a derived category based on conditions
SELECT first_name, last_name,  
-- Use CASE to determine the category based on department or city
CASE  
-- If department is 'IT', categorize as 'Tech' If city is 'New York', categorize as 'NYC'
  WHEN department = 'IT' THEN 'Tech'  
  WHEN city = 'New York' THEN 'NYC'  -- 
  ELSE 'Other'
END AS category
FROM employees; 

Dai un'occhiata al nostro percorso di competenze SQL Fundamentals per approfondire l'operatore UNION e l'istruzione CASE per la manipolazione dei dati.

Conclusione

L'operatore OR è un operatore SQL versatile per costruire query flessibili e complesse. Consente di filtrare i record di una tabella in base a più condizioni. Come abbiamo visto, se usato con altre istruzioni come INSERT, UPDATE e DELETE, l'operatore OR permette anche di modificare i record nelle tabelle. Come data analyst, è importante capire i problemi di performance legati all'operatore OR e i metodi alternativi, come l'operatore UNION e le istruzioni CASE WHEN. 

Ti incoraggio a fare pratica con l'operatore OR per filtrare i record su dataset diversi, così da acquisire dimestichezza con la sua funzionalità. Per far crescere le tue competenze SQL, valuta il nostro percorso di carriera Associate Data Analyst in SQL per diventare un analista competente. Il corso Reporting in SQL ti aiuterà anche a imparare come analizzare e presentare i dati usando dashboard. Infine, ti consiglio di ottenere la SQL Associate Certification di DataCamp per dimostrare le tue abilità e la tua padronanza di SQL per l'analisi dei dati.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Technical writer di Data Science con esperienza pratica in data analytics, business intelligence e data science. Scrivo contenuti pratici e orientati al settore su SQL, Python, Power BI, Databricks e data engineering, basati su lavoro di analytics reale. La mia scrittura unisce profondità tecnica e impatto sul business, aiutando i professionisti a trasformare i dati in decisioni sicure.

Domande frequenti su SQL

Qual è la differenza tra gli operatori OR e AND in SQL?

L'operatore OR restituisce risultati se una qualsiasi delle condizioni specificate è vera, mentre l'operatore AND restituisce risultati se tutte le condizioni specificate sono vere.

Si può usare l'operatore OR insieme ad AND in un'unica query?

Puoi usare l'operatore OR insieme all'operatore AND per filtrare i record in base a più condizioni. Tuttavia, dovresti usare le parentesi per raggruppare le condizioni e specificare l'ordine di esecuzione della query.

Ci sono limiti al numero di condizioni da filtrare usando l'operatore OR in SQL?

Non c'è un limite al numero di condizioni da filtrare con l'operatore OR, anche se troppe condizioni possono influire sulle prestazioni della query.

Si può usare l'operatore OR per modificare i dati nelle tabelle?

Puoi usare l'operatore OR con le istruzioni INSERT, UPDATE e DELETE per modificare i record specificati nella tabella.

Quali sono le alternative SQL all'operatore OR?

L'operatore UNION e le istruzioni CASE WHEN sono alternative all'operatore OR usate per filtrare i record in base a più condizioni.

Argomenti
SQL
Analisi dei dati
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro