Support de cours SQL Server
Critère LIKE
Afficher les noms des produits contenant ROAD, mais pas ceux dont le nom commence par ROAD SELECT NAME FROM SALESLT.PRODUCT WHERE NAME LIKE ‘[^ROAD]%ROAD%’
Afficher les productNumber dont le code comporte un chiffre en 4e position
SELECT PRODUCTNUMBER FROM SALESLT.PRODUCT WHERE PRODUCTNUMBER LIKE ‘___[0-9]%’ Afficher les employés dont le nom contient au moins 2 fois la lettre ‘A’
SELECT empid, firstname, lastname FROM HR.Employees WHERE lastname LIKE ‘%a%a%’;
Critère IN
La liste des clients de Mexico, du Canada ou des USA
SELECT * FROM Sales.Customers WHERE Country IN (‘Mexico’, ‘Canada’,’USA’)
Liste des produits Rouge ou Jaune (ou Null)
SELECT [productname],[Color],[ProductNumber] FROM [TSQLFundamentals2008].[Production].[Products] WHERE (Color in (‘Black’,’Yellow’) OR Color IS NULL)
Créer un champ calculé
Calcule le montant de la vente pour chaque ligne de commande SELECT orderid, productid, qty, unitprice, discount, qty * unitprice * (1 – discount) AS val FROM Sales.OrderDetails;
Concatène le nom et le prénom des employés SELECT empid, firstname + N’ ‘ + lastname AS fullname FROM HR.Employees;
Utiliser les fonctions dans des requêtes
Afficher les ventes et l’année de la vente
SELECT Name, YEAR(SellStartDate) AS Annee, ListPrice – StandardCost AS Marge FROM SalesLT.Product
Afficher ‘Pas de couleur’ si NULL pour le champ
Color SELECT [productid] ,[productname] ,ISNULL([Color],’Pas de couleur’) FROM [TSQLFundamentals2008].[Production].[Products]
Afficher les commandes ayant eu lieu le dernier jour du mois
SELECT orderid, orderdate, custid, empid FROM Sales.Orders WHERE orderdate = DATEADD(month, DATEDIFF(month, ‘19991231’, orderdate), ‘19991231’);
Concatène plusieurs champs et si valeur nulle, on affiche un espace SELECT custid, country, region, city, country + N’,’ + COALESCE(region, N ») + N’,’ + city AS location FROM Sales.Customers;
Sépare le nom du prénom avec la fonction CHARINDEX
SELECT [custid] ,[contactname] ,LEFT(contactname,CHARINDEX(‘,’,[contactname])-1) FROM [TSQLFundamentals2008].[Sales].[Customers]
Afficher le numéro du fournisseur avec 10 chiffres
SELECT supplierid, RIGHT(REPLICATE(‘0′,9) + CAST(supplierid AS VARCHAR(10)),10) FROM Production.Suppliers
Convertir une date de chaîne vers un DateTime SELECT CONVERT(DATETIME,’01/03/2009’,103)
Formater un affichage de chiffres (2 décimales) CAST(SUM((OD.qty * OD.unitprice) * (1 – OD.discount)) AS NUMERIC(12 , 2))
Générer un chiffre aléatoire
SELECT ABS(CAST(CAST(NEWID() AS VARBINARY) AS tinyint))