почему я получаю ошибку «нет данных» в oracle live, даже если у меня есть данные, удовлетворяющие моим условиям? - PullRequest
0 голосов
/ 01 апреля 2020
INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1001,'BOOK','PINK',1500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1002,'TABLE','BLUE',3500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1003,'COVER','BLACK',1800);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1004,'PANT','WHITE',2500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1005,'RIBBON','RED',1500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1006,'RING','BLUE',3000);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1007,'CUP','RED',2500);

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES(1008,'SHIRT','PINK',3000);

//query
SELECT PNO, PNAME
FROM PRODUCTS
WHERE (COLOR = 'PINK') AND (COLOR = 'RED')
AND  SALE_PRICE < 2000;

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вы не можете использовать COLOR = 'PINK' и COLOR = 'RED', вместо этого используйте ИЛИ

SELECT PNO, PNAME FROM PRODUCTS WHERE ((COLOR = 'PINK') OR (COLOR = 'RED')) AND SALE_PRICE < 2000;

Вы также можете использовать предложение IN, например,

SELECT PNO, PNAME FROM PRODUCTS WHERE COLOR IN ('PINK', 'RED') AND SALE_PRICE < 2000;

1 голос
/ 01 апреля 2020

Причина, по которой это происходит, в том, что у вас нет записей с PINK AND RED. Вместо этого используйте OR.

//query
SELECT PNO, PNAME
FROM PRODUCTS
WHERE (COLOR = 'PINK') OR (COLOR = 'RED')
AND  SALE_PRICE < 2000;

Эта следующая часть просто покажет вам, что у вас есть возможность при добавлении нескольких вставок:

INSERT INTO PRODUCTS(PNO,PNAME,COLOR,SALE_PRICE) 
VALUES
(1001,'BOOK','PINK',1500),
(1002,'TABLE','BLUE',3500),
(1003,'COVER','BLACK',1800),
(1004,'PANT','WHITE',2500),
(1005,'RIBBON','RED',1500),
(1006,'RING','BLUE',3000),
(1007,'CUP','RED',2500),
(1008,'SHIRT','PINK',3000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...