di: Luca Milan 18 Aprile 2002
Solitamente siamo abituati ad utilizzare l'istruzione SELECT per recuperare i dati dalle tabelle di SQL Server, ma questo non è il solo compito che possiamo svolgere, difatti nell'ambito del Transact SQL diventano molteplici i campi di utilizzo di questa istruzione.
Dentro un batch Transact SQL l'istruzione SELECT è utilizzata per assegnare valori ad una o più variabili vediamo un esempio:
/* Assegnazione singola di una variabile*/
DECLARE @miavar VARCHAR(255)
SELECT @miavar = 'una piccola variabile stringa'
Per assegnare valori a più variabili è sufficiente separarle con
una virgola:
/* Assegnazione multipla delle variabili*/
DECLARE @miavar VARCHAR(255), @miavar2 VARCHAR(255)
SELECT @miavar = 'una piccola variabile stringa', @miavar2
= 'altra piccola variabile stringa'
La parola chiave DISTINCT ci permette di estrarre solamente le righe uniche da una tabella (filtra le righe senza considerare i duplicati) e grazie alla SELECT INTO possiamo inserirli in una tabella temporanea:
SELECT DISTINCT * INTO #tabella_record_unici FROM tabella_con_duplicati
Possiamo recuperare dati da un file ACCESS presente sul nostro PC, semplicemente accedendo alla funzione OPENROWSET. Nel nostro caso selezioniamo tutti i record della tabella Anagrafica dal file ACCESS.
SELECT *
FROM OpenRowset('Microsoft.Jet.OLEDB.4.0', 'C:\contenuti.mdb';'admin';'',
Anagrafica)
Oppure facciamo una query ad un foglio Excel di nome categorie:
SELECT *
FROM OpenRowset('MSDASQL', 'Driver=Microsoft Excel Driver (*.xls);DBQ=c:\Categorie','SELECT
* FROM [Results]')
Grazie alla parola chiave INTO possiamo clonare una tabella creandone una copia identica sia nella struttura che nei contenuti.
SELECT * INTO copia_titles FROM titles
Grazie alla clausola TOP implementata dalla versione 7.0 di SQL Server possiamo definire con precisione il numero di righe ritornate da una SELECT. La clausola TOP può essere utilizzata in due modi, in valore assoluto:
SELECT TOP 5 * FROM titles
Oppure in valore percentuale come in questo caso, verranno ritornato solo un numero corrispondente il 10 percento delle righe presenti nella tabella titles:
SELECT TOP 10 PERCENT * FROM titles
SQL Server ci fornisce numerose funzioni scalari che ritornano numerose informazioni sul database e sugli oggetti del database. L'istruzione SELECT anche in questo caso ci è utile per recuperare queste informazioni, come esempio esaminiamo e funzioni molto comuni come DB_NAME() e USER_NAME().
SELECT
DB_NAME() AS [Nome database corrente],
USER_NAME() AS [Nome username corrente]
|
SQL Maintenance Solution: soluzione free per la manutenzione di SQL Server |
Guida AccessIniziare a sviluppare database grazie alla potenza visuale offerta... |
Guida SQL Server 2005L'RDBMS di Microsoft è uno dei più utilizzati, soprattutto in ambito... |
Guida OracleScoprire ed approfondire un dei più importanti RDBMS sulla scena... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su MySQL, SQLserver e Oracle.
Iscriviti alla newsletter