SQL

Questo sconosciuto

SQL Server - Concatenare righe in colonne

Cosa faccio se voglio ottenere in un campo di una query il contenuto di una subquery che restituisce più righe? Ad esempio se voglio ottenere l’elenco dei prodotti venduti da un fornitore dalla tabella products del database Northwind? Fino a ieri avrei fatto un cursore che interroga la tabella e concatena il risultato all’interno di una variabile; oggi un mio collega ha scoperto che esiste un metodo molto più semplice:   declare @productsName AS varchar(200)   select @productsName = COALESCE(@productsName, '') + ProductName + ','       from products where supplierid = 7   select @productsName   Il risultato è esattamente quello che serviva:   --------------------------------------------------------------------- Pavlova,Alice Mutton,Carnarvon Tigers,Vegie-spread,Outback Lager,   (1 row(s) affected)   Da oggi...

Confronto di date in SQL Server

Un problema che si incontra spesso in SQL Server, quando bisogna effettuare delle query che effettuano il confronto su due campi di tipo DateTime, consiste nel fatto che SQL Server, oltre a memorizzare la data, memorizza anche l’orario.  Ad esempio una query del genere potrebbe dare questo tipo di risultato:   select Data1, Data2 from MiaTabella where Data1 <= Data2   Data1                   Data2 ----------------------- ----------------------- 2006-11-21 12:38:00     2006-11-23 17:18:00 2006-07-24 10:52:00     2006-07-24 10:52:00   A prima vista sembrerebbe corretto, ma c’è la possibilità che si verifichi un errore piuttosto subdolo. Esistono diverse soluzioni al problema, quella che preferisco è quella di utilizzare la funzione DATEDIFF. Se correggiamo la query in...

Quiz SQL

Mi sono trovato a dover ripulire dei dati duplicati all’interno di una tabella, un problema che sembra abbastanza semplice ma che all’inizio mi ha creato qualche perplessità. Alla fine la soluzione era molto più semplice di quanto pensassi, ho quindi pensato di proporre questo quiz per confrontare la mia soluzione con quelle proposte da chi vorrà cimentarsi per verificare se esistono soluzioni migliori e più performanti.   Ecco le specifiche del quiz:   ...

«ottobre»
domlunmarmergiovensab
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567