Si vous avez un long groupe d'enregistrements, vous pouvez préciser que vous souhaitez ne voir qu'un certain nombre d'enregistrements. Pour le faire, après l'opérateur SELECT, tapez TOP suivi d'un nombre entier. Poursuivez l'instruction SELECT comme bon vous semble. Voici un exemple : USE Exercise ; GO SELECT TOP 5 * FROM Employees ; GO Vous pouvez également inclure le nombre entre parenthèses.Voici un exemple : USE Exercise ; GO SELECT TOP(5) * FROM Employees ; GO Cette instruction demande à l'interprète SQL de sélectionner les 5 premiers enregistrements de la table Employees. Juste comme fait ici, vous pouvez appliquer l'opérateur TOP à n'importe laquelle des déclarations que nous verrons pour le reste de nos leçons.
Vous pouvez utiliser une instruction conditionnelle WHEN pour affiner la sélection des données. Examinez le tableau suivant : USE Exercise1 ;
GO
CREATE TABLE Persons (FirstName nvarchar(20), LastName nvarchar(20), GenderID int);
GO
INSERT INTO Persons VALUES(N'Gertrude', N'Monay', 2),
(N'Horace ', N'Taylor',1),
(N'Patricia ', N'Katts', 2),
(N'Tiernan ', N'Michael ',3),
(N'Paul ', N'Yamo ',1),
(N'Mahty ', N'Shaoul ',3),
(N'Helene ', N'Mukoko ', 2);
GO
Imaginez que vous souhaitez sélectionner la colonne GenderID :
Si une colonne a des valeurs qui sont difficiles à identifier, vous pouvez utiliser une instruction conditionnelle CASE pour personnaliser les résultats. Voici un exemple : SELECT FirstName, LastName, Gender =
CASE GenderID
WHEN 1 THEN N'Male'
WHEN 2 THEN N'Female'
ELSE N'Unknown'
END
FROM Persons
Lors de l'analyse des données ou si vous créez une requête à l'aide de la fenêtre de la table, vous pouvez taper une expression qui utilise un ou plusieurs opérateurs logiques que nous avons examinés dans la Leçon 6. Voici un exemple d'une expression >'12/31/1993' Cela signifie que les dates qui se produisent après 1993 seraient retenues. Si vous écrivez votre instruction SELECT, pour formuler une condition, vous utilisez le mot-clé WHERE avec une formule de base comme suit : SELECT What FROM WhatObject WHERE Expression ; Les expressions utilisées dans des conditions sont créées en utilisant algébrique, logique et opérateurs de chaîne. Le facteur d'expression est appelé un critère. Bien qu'un groupe d'expressions, rendant pluriel est appelé critères, le critère de mot est parfois utilisé pour une expression singulière également. L'expression est rédigée à l'aide de la formule : ColumnName = Value Le facteur ColumnName doit être une colonne d'une table existante. Il est suivi par l'opérateur d'affectation. La valeur de facteur est la valeur qui établirait la condition. Si la valeur est un mot ou un groupe de mots (également appelé une chaîne), vous devez l'inclure entre guillemets. S'il s'agit d'un numéro, vous pouvez taper sa valeur numérique. Voici un exemple d'une base de données des étudiants, d'une table nommée Students, pour obtenir une liste des étudiantes : SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE Gender = N'Female ';
GO
Cela donnerait :
Dans une instruction WHERE, vous pouvez également utiliser l'expression ORDER BY pour trier une liste d'enregistrements basés sur une colonne de votre choix. Voici un exemple : SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE State = N'MD'
ORDER BY LastName ;
GO
Cela donnerait :
|
|
|||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
Jusqu'ici, nous étions dans nos instructions SELECT, nous sélectionnons les colonnes que nous trouvons nécessaires à l'affichage. Lors de la formulation d'une telle déclaration, vous pouvez appliquer une condition à une colonne sans inclusion de colonne dans le résultat. Par exemple, considérez la requête ci-dessus. Elle est utilisée pour afficher une liste d'étudiantes. Puisque nous savons que le résultat afficherait uniquement les filles, il devient redondant d'inclure la colonne de sexe dans l'instruction. Dans ce cas, vous pouvez masquer cette colonne dans le résultat. Pour masquer une colonne d'une requête, omettez cette colonne dans l'instruction SELECT, mais impliquez-la dans la condition WHERE. Voici un exemple : SELECT DateOfBirth, LastName,
FirstName, State, ParentsNames
FROM Students
WHERE Gender = N'Female ';
GO
Cela donnerait :
Notez que l'instruction SELECT ne dispose pas de la colonne de Sexe et la requête obtenue n'affiche pas la colonne de Sexe.
Dans la leçon 5, nous avons vu que vous pourriez utiliser l'opérateur NOT pour annuler la validité d'une expression booléenne. Examinez l'instruction suivante : SELECT DateOfBirth, LastName, FirstName,
State, ParentsNames
FROM Students
WHERE Gender = N'Female ';
GO
Lorsque cette instruction est exécutée, une liste des étudiantes s'afficherait. Au lieu des filles, pour obtenir une liste des étudiants masculins, vous pouvez inverser cette condition. Pour le faire, tapez NOT avant la condition. Cela serait effectué comme suit : SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE NOT Gender = N'Female ';
GO
Pour faciliter la lecture de cette condition, vous devez inclure l'expression positive entre parenthèses. Cela serait effectué comme suit : SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE State IS NOT NULL ;
GO
Cela indique clairement que l'expression qui est dans les parenthèses est annulée. De la même façon, vous pouvez utiliser IS NOT NULL pour trouver les enregistrements qui ne sont pas NULL. Par exemple, vous pouvez créer uniquement une liste des enregistrements qui n'ont pas une valeur NULL dans une colonne. Voici un exemple : SELECT DateOfBirth, LastName, FirstName,
State, ParentsNames
FROM Students
WHERE State IS NOT NULL ;
GO
Lorsque cette instruction est exécutée, la table affichera uniquement les enregistrements qui incluent un état pour chaque étudiant.
Examinez la table Employees suivante : CREATE DATABASE Corporation
GO
USE Corporation ;
GO
CREATE TABLE Employees
(
EmployeeNumber int unique not null
FirstName nvarchar (20)
LastName nvarchar (20) not null,
Department nvarchar (50) null
EmploymentStatus nvarchar (30)
HourlySalary money
);
GO
INSERT INTO Employees
VALUES(84628, N'Anthony', N'Holms', N'Corporate', N'Full Time', 24.72),
(40574, N'William', N'Wilson ', N'Information Technology', N'Full Time', 21.18),
(27462, N'Peter', N'Swanson ', N'Corporate ', N'Full Time', 22.84),
(52835, N'Edward', N'Johansen', N'Information Technology', N'Consultant', 15.50),
(93075, N'Sharon', N'Edson', N'Accounting', N'Full Time', 28.74),
(82718, N'Yanuh', N'Hadhah', N'Corporate', N'Full Time', 14.86),
(29174, N'Hamin', N'Souleyman', N'Public Relations', N'Consultant', 18.76);
GO
Vous pouvez utiliser tout ou partie des enregistrements d'une table existante pour créer une table contenant les enregistrements. Pour le faire, vous utilisez la formule suivante : SELECT Columns INTO NewTableName FROM ExistingTable [WHERE Condition] Pour utiliser toutes les colonnes et tous les enregistrements, démarrez avec l'opérateur SELECT, suivi par *, suivi de INTO, suivi d'un nom pour la table que vous voulez créer, suivi de FROM et le nom de la table d'origine contenant les enregistrements. Voici un exemple : USE Corporation ; GO SELECT * INTO CompanyRecipients FROM Employees ; GO Au lieu d'utiliser toutes les colonnes, vous pouvez spécifier seulement les colonnes souhaitées après le mot-clé SELECT. Voici un exemple : USE Corporation ; GO SELECT EmployeeNumber, LastName, FirstNfame, EmploymentStatus, INTO Salaried FROM Employees ; GO Au lieu d'utiliser tous les enregistrements, vous pouvez utiliser une condition par laquelle les enregistrements seraient sélectionnés et ajoutés à la nouvelle table que vous créez. Pour définir la condition, vous pouvez créer une instruction WHERE comme la dernière dans l'expression entière. Voici un exemple : USE Corporation ; GO SELECT * INTO FullTimeEmployees FROM Employees WHERE EmploymentStatus = N'Full Time' ; GO
La plupart ou tous les critères que nous avons spécifiés avec le mot-clé WHERE devaient correspondre exactement au critère spécifié. Dans certains cas, vous ne vous souvenez peut-être pas de la valeur exacte des enregistrements, mais vous souhaitez spécifier un type quelconque de rapprochement. Pour ce faire, vous utilisez l'opérateur LIKE. Si vous créez visuellement l'instruction dans la section critères, dans la case correspondant au filtre pour la colonne sur laquelle la condition serait appliquée, tapez la condition LIKE. Dans Transact-SQL, l'opérateur LIKE est utilisé dans une formule comme suit : Expression LIKE pattern Le facteur d'expression est l'expression qui est évaluée. Ce doit être une expression claire et valide. Le facteur de motif peut être une valeur qui se trouve dans l'expression. Par exemple, il peut être le même type de valeur utilisée dans une instruction WHERE. Dans ce cas, l'opérateur d'égalité serait identique comme LIKE. Par exemple SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE State = N'VA' ;
GO
équivaut à SELECT DateOfBirth, LastName, FirstName,
Gender, State, ParentsNames
FROM Students
WHERE State LIKE N'VA' ;
GO
L'idée d'utiliser un opérateur LIKE est de donner une approximation du type de résultat souhaité. Il y a des caractères génériques à utiliser avec l'opérateur LIKE.
Si vous souhaitez faire correspondre n'importe quel caractère, dans n'importe quelle combinaison, pour n'importe quelle longueur, utilisez le caractère %. Si vous faites précéder par une lettre, comme dans S % , la condition consisterait à trouver toute chaîne qui commence par S. Imaginez que vous souhaitez obtenir une liste des élèves dont le nom de famille commence par S. Vous devez taper la condition comme LIKE % '. Pour le faire visuellement dans les critères de section, sous la colonne filtre, tapez la condition. Voici un exemple :
L'instruction SQL est cette requête : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE LastName LIKE N'S%' Cela donnerait :
Vous pouvez inverser cette condition en la précèdent avec NOT. Voici un exemple : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE NOT (LastName LIKE N'S %') Cela donnerait :
Cette fois, le résultat est la liste des élèves dont le nom de famille ne commence pas avec S. Lorsque vous faites précéder le caractère % avec une lettre, seule cette lettre serait considérée. Vous pouvez également spécifier un groupe de caractères qui précéderaient le symbole %. Par exemple, si vous avez quelques prénoms qui commencent par CH dans une liste, mais vous ne vous rappelez pas la fin du nom que vous recherchez, pour créer la liste, vous pouvez spécifier que le prénom commencerait avec CH et se termine avec n'importe quoi. Dans ce cas, vous utiliseriez CH % comme suit : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE LastName LIKE N'CH %' Cela donnerait :
Au lieu de terminer une lettre ou un groupe de lettres avec %, vous pouvez commencer l'instruction LIKE avec %. Un exemple serait LIKE « %son». Dans ce cas, toutes les chaînes qui se terminent par son, tels que Johnson ou Colson, seraient considérées. Si vous ne vous rappelez ni du début ni de la fin d'une chaîne que vous voulez rechercher, mais vous connaissez une sous-chaîne qui est probablement incluse dans le type de chaîne que vous cherchez, vous pouvez le précéder avec % et y mettre fin avec %. Un exemple serait LIKE "% an %". Dans ce cas, toutes les chaînes qui incluent "an" n'importe où seraient considérées comme à l'intérieur. Voici un exemple : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE LastName LIKE '% an %' Cela donnerait :
Comme les autres instructions SQL, vous pouvez également inverser celle-ci à l'aide de l'opérateur NOT.
Le caractère % est utilisé pour faire précéder ou réussir un caractère spécifique ou un groupe de caractères, c'est-à-dire n'importe quel caractère. Si vous souhaitez examiner uniquement une plage de caractères de l'alphabet, vous pouvez inclure la plage entre crochets. Pour le faire, tapez [, suivi du caractère le plus bas de la plage, suivi par -, suivi du caractère le plus élevé de la plage, suivi de ]. Par exemple, pour examiner la gamme des lettres entre p et s, vous utiliserez ' [p-s] '. Ensuite, à gauche, à droite, ou aux deux côtés de cette expression, tapez % pour spécifier si vous souhaitez inclure n'importe quel caractère ou une combinaison de caractères avant ou après l'expression. Voici un exemple : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE LastName LIKE N'%[p-s]' Dans ce cas, le résultat serait une liste des étudiants dont les noms se terminent avec une lettre entre p et s. Cela donnerait :
Notez que la liste inclut uniquement les étudiants dont le nom de famille se termine par une lettre entre p et s.
Par opposition à la considération des caractères qui se trouvent dans une plage spécifique, pour spécifier un caractère ou une plage de caractères qui ne doivent pas être pris en considération, utilisez le caratère ^ à l'intérieur des crochets, mais avant la plage souhaitée. Voici un exemple : SELECT FirstName, LastName, Gender, SPHome FROM Students WHERE (LastName LIKE'%[^ p-r]') Le résultat serait une liste d'étudiants dont la dernière finit avec une lettre autre que p, q, r ou s. Une fois de plus, n'oubliez pas que vous pouvez inverser cette expression en la précèdant avec NOT. Notez que si vous annulez une expression qui inclue ^, vous obtiendrez le même résultat que n'utilisant pas ^. |
|
|||||||||||||||||||||
|
|
|
|
||
| Précédant | Copyright © 2010 Yevol | Suivant |
|
|
||