Một vài câu lệnh truy vấn điều kiện (if... then....)
==============================================
Code:
use master
go
if exists(select* from dbo.sysdatabases where name='DEMO')
drop database DEMO
else
print 'Không có Database này trong SQL Server 2000'
go
Đó là câu lệnh nếu tìm thấy tên cơ sở dữ liệu DEMO trong SQL Server 2000 thì xóa CSDL đó đi, còn không thì thông báo không có.
Code:
use master
go
if not exists (select * from dbo.sysdatabases where name = 'DEMO')
begin
create database DEMO
use DEMO
end
else
use DEMO
go
create table CaNhan
(
_id int primary key,
First_Name nvarchar(50),
Last_Name nvarchar(50),
Gender char(1),
Marital_Status char(1)
)
go
insert into CaNhan
values (1,'John','Smith','m','S')
insert into CaNhan
values (2,'James','Bond','m','M')
insert into CaNhan
values (3,'Alexa','Mantena','f','M')
insert into CaNhan
values (4,'Shui','Qui','f','M')
insert into CaNhan
values (5,'William','Hsu','m','S')
insert into CaNhan
values (6,'Danielle','Stewart','F','M')
insert into CaNhan
values (7,'Martha','Mcgrath','F','M')
insert into CaNhan
values (8,'Henry','Fayol','m','S')
insert into CaNhan
values (9,'Dick','Watson','m','M')
insert into CaNhan
values (10,'Helen','Foster','F','M')
go
Giải thích:
- Tạo database và table này để phục vụ cho việc thể hiện lệnh case trong SQL.
- Mấy câu lệnh trên sẽ kiểm tra xem trong SQL đã có database DEMO chưa? Nếu chưa sẽ tạo mới, nếu rồi thì sử dụng nó để tạo table CaNhan (thông tin cá nhân) vào trong database đó.
- Chú ý câu lệnh GO dùng để phân tách các bó câu lệnh
Dùng hàm CASE để lọc dữ liệu rồi thêm một số kiểu hiển thị:
Ví dụ: Trong table CaNhan(_id, First_Name, Last_Name, Gender, Marital_Status) chúng ta muốn hiển thị Full_Name với phân biệt là đàn ông thì thêm Mr đằng trước còn phụ nữ thì Miss. (Tạm thời vậy đi ).
Code:
select _id,FullName=case(Gender)
when 'm' then 'Mr. '+ First_Name+ ' ' + Last_Name
when 'f' then 'Miss. '+ First_Name + ' ' + Last_Name
end
from CaNhan
Kết Quả:
_id FullName
--------- -------------------------------------------------------1 Mr. John Smith
2 Mr. James Bond
3 Miss. Alexa Mantena
4 Miss. Shui Qui
5 Mr. William Hsu
6 Miss. Danielle Stewart
7 Miss. Martha Mcgrath
8 Mr. Henry Fayol
9 Mr. Dick Watson
10 Miss. Helen Foster
(10 row(s) affected)