Клауза WHERE

Важно : Тази статия е преведена машинно – вижте отказа от отговорност. Английската версия на тази статия за справка можете да намерите тук .

Задава кои записи от таблиците, изброени в клаузата FROM, се влияят от командите SELECT, UPDATE или DELETE.

Синтаксис

SELECT списък_полета
FROM израз_за_таблици
WHERE критерии

Командата SELECT, съдържаща клауза WHERE, има следните части:

Част

Описание

списък_полета

Името на полето или полетата, за да бъдат извлечени заедно с всяко име на поле псевдоними, предикати за селекция (ALL, DISTINCT, DISTINCTROW или TOP), или други опции на командата Select.

израз_за_таблици

Името на таблицата или таблиците, от които се извличат данни.

критерии

израз, който записите трябва да удовлетворяват, за да бъдат включени в резултатите от заявките.


Забележки

Ядрото на базата данни на Microsoft Access избира записите, които отговарят на условията, изброени в клаузата WHERE. Ако не зададете клауза WHERE, вашата заявка връща всички редове от таблицата. Ако зададете повече от една таблица и не включите клауза WHERE или JOIN, вашата заявка генерира декартово произведение на таблиците.

Клаузата WHERE не е задължителна, но когато присъства, трябва да е след FROM. Можете например да изберете всички служители в отдела за продажби (WHERE Dept = 'Sales') или всички клиенти на възраст между 18 и 30 години (WHERE Age Between 18 And 30).

Ако не използвате клауза JOIN за извършване на SQL съединение на няколко таблици, полученият обект Recordset няма да бъде обновяем.

Клаузата WHERE е подобна на клаузата HAVING. WHERE определя кои записи да се изберат. След като записите са групирани с GROUP BY, HAVING определя кои записи да се покажат:

Използвайте клаузата WHERE, за да елиминирате записи, които не искате да бъдат групирани от клауза GROUP BY.

Можете да използвате различни изрази, за да определите кои записи връща SQL командата. Например следната SQL команда избира всички служители (Employees), чиито заплати (Salary) са над $21 000:

SELECT LastName, Salary FROM Employees WHERE Salary > 21000;

Една клауза WHERE може да съдържа до 40 израза, свързани от логически оператори, например And и Or.

Когато въвеждате име на поле, съдържащо интервал или пунктуация, ограждайте името с квадратни скоби ([ ]). Например таблица с информация за клиент може да съдържа информация за конкретни клиенти :

SELECT [Customer’s Favorite Restarant]

Когато зададете аргумента критерии , дата литерали трябва да сте в САЩ формат, дори ако не използвате американската версия на база данни на Microsoft Access. Например 10 май г., е написано 10/5/96 в Обединеното кралство и 5/10/96 в САЩ. Не забравяйте да оградите си дата литерали със знак за номер (#), както е показано в следващите примери.

За да намерите записи с дата 10 май 1996 в база данни за България, трябва да използвате следната SQL команда:

SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;

Можете също да използвате функцията DateValue, която отчита езиковите настройки, установени от Microsoft Windows®. Например за САЩ използвайте следния код:

SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');

За България използвайте следния код:

SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');

Забележка : Ако колоната, зададена в низа за критериите, е от тип GUID, изразът за критериите използва малко по-различен синтаксис:

WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}

Уверете се, че сте поставили вложените фигурни скоби и тирета, както е показано.



Забележка : Отказ от отговорност за машинен превод: Тази статия е преведена от компютърна система без човешка намеса. Microsoft предлага тези машинни преводи, за да помогне на потребителите, които не говорят английски, да се възползват от съдържанието за продукти, услуги и технологии на Microsoft. Тъй като статията е преведена машинно, е възможно да съдържа грешки в речника, синтаксиса и граматиката.

Споделяне Facebook Facebook Twitter Twitter Имейл Имейл

Беше ли полезна тази информация?

Чудесно! Друга обратна връзка?

Как можем да подобрим това?

Благодарим ви за обратната връзка!

×