Sei sulla pagina 1di 2

Create table operator1(comparision1_cd varchar(5),

final_camparison varchar(5),
comparision2_cd varchar(5),
BEST CHAR(2));
insert into operator1 values('E','L','S','1');
insert into operator1 values('L','L','S','2');
insert into operator1 values('S','L','E','3');
insert into operator1 values('S','L','S','4');
insert into operator1 values('E','E','E','8');
insert into operator1 values('E','E','S','5');
insert into operator1 values('L','E','S','6');
insert into operator1 values('S','E','E','7');
insert into operator1 values('S','L','N','O');
insert into operator1 values('S','L','N','A');
insert into operator1 values('S','N','N','O');
insert into operator1 values('S','N','N','A');
insert into operator1 values('S','L','L','8');
insert into operator1 values('S','E','S','5');
insert into operator1 values('S','L','?','5');
insert into operator1 values('?','N','N','5');
===============================================
SELECT
CASE WHEN comparision2_cd IN('S','E')
AND final_camparison IN('L') THEN 'EARLIEST OF'
WHEN final_camparison IN('E','L') AND
comparision2_cd NOT IN('?','N') AND
comparision2_cd IS NOT NULL THEN 'LATEST OF'
WHEN comparision1_cd IN('S') AND comparision2_cd IN('N')
AND BEST ='O' THEN 'EXACTLY'
WHEN comparision1_cd IN('S') AND comparision2_cd IN('N')
AND BEST !='O' THEN 'NOT LATER'
END FROM operator1
SELECT comparision1_cd,final_camparison,comparision2_cd,
CASE WHEN comparision2_cd IN('S','E')
AND final_camparison IN('L') THEN 'EARLIEST OF'
WHEN final_camparison IN('E','L') AND
comparision2_cd IN('E','L','S') THEN 'LATEST OF'
WHEN comparision1_cd IN('S') AND comparision2_cd IN('N')
AND BEST ='O' THEN 'EXACTLY'
WHEN comparision1_cd IN('S') AND comparision2_cd IN('N')
AND BEST !='O' THEN 'NOT LATER'
END
FROM operator1
===============================================
CREATE TABLE STATION
(ID INTEGER PRIMARY KEY,
CITY CHAR(20),
STATE CHAR(2),
LAT_N REAL,
LONG_W REAL);
INSERT INTO STATION VALUES (13, 'Phoenix', 'AZ', 33, 112);
INSERT INTO STATION VALUES (44, 'Denver', 'CO', 40, 105);
INSERT INTO STATION VALUES (66, 'Caribou', 'ME', 47, 68);
CREATE TABLE STATS
(ID INTEGER REFERENCES STATION(ID),

MONTH INTEGER CHECK (MONTH BETWEEN 1 AND 12),


TEMP_F REAL CHECK (TEMP_F BETWEEN -80 AND 150),
RAIN_I REAL CHECK (RAIN_I BETWEEN 0 AND 100),
PRIMARY KEY (ID, MONTH));
INSERT INTO STATS VALUES (13, 1, 57.4, 0.31);
INSERT INTO STATS VALUES (13, 7, 91.7, 5.15);
INSERT INTO STATS VALUES (44, 1, 27.3, 0.18);
INSERT INTO STATS VALUES (44, 7, 74.8, 2.11);
INSERT INTO STATS VALUES (66, 1, 6.7, 2.10);
INSERT INTO STATS VALUES (66, 7, 65.8, 4.52);
SELECT A.CITY,(CASE WHEN a.STATE='AZ' AND a.LAt_n=33
THEn 'Phoenix'when a.STATE='CO' AND a.LAt_n=40
then 'Denver' WHEN a.STATE='ME' AND a.LAt_n=47
THEN 'Caribou' end) cs_data FROM STATION A ,
STATS B WHERE A.ID=B.ID AND A.CITY !=CASE WHEN
a.STATE='AZ' AND a.LAt_n=33
THEn 'Phoenix'when a.STATE='CO' AND a.LAt_n=40
then 'Denver' WHEN a.STATE='ME' AND a.LAt_n=47
THEN 'Caribou' end
EA===========================
SELECT * from operator1
where comparision2_cd NOT IN ('?' ,'N')
AND final_camparison IN('L')
LA===========
SELECT * from operator1
where comparision2_cd NOT IN ('?' ,'N')
AND final_camparison IN('L','E')
LA=====DELI
SELECT * from operator2
where comparision1_cd NOT IN ('N','?')
AND final_camparison IN('?','E') and comparision2_cd
in ('E','L','S')

Potrebbero piacerti anche