Không phải 100% những gì bạn đang tìm kiếm, nhưng loại một cách trong ra ngoài để làm việc đó:
SQL> CREATE TABLE mytable (id NUMBER, status VARCHAR2(50));
Table created.
SQL> INSERT INTO mytable VALUES (1,'Finished except pouring water on witch');
1 row created.
SQL> INSERT INTO mytable VALUES (2,'Finished except clicking ruby-slipper heels');
1 row created.
SQL> INSERT INTO mytable VALUES (3,'You shall (not?) pass');
1 row created.
SQL> INSERT INTO mytable VALUES (4,'Done');
1 row created.
SQL> INSERT INTO mytable VALUES (5,'Done with it.');
1 row created.
SQL> INSERT INTO mytable VALUES (6,'In Progress');
1 row created.
SQL> INSERT INTO mytable VALUES (7,'In progress, OK?');
1 row created.
SQL> INSERT INTO mytable VALUES (8,'In Progress Check Back In Three Days'' Time');
1 row created.
SQL> SELECT *
2 FROM mytable m
3 WHERE +1 NOT IN (INSTR(m.status,'Done')
4 , INSTR(m.status,'Finished except')
5 , INSTR(m.status,'In Progress'));
ID STATUS
---------- --------------------------------------------------
3 You shall (not?) pass
7 In progress, OK?
SQL>
Tôi đã cố gắng tránh tuyến đường dài, nhưng có vẻ như đó là cách duy nhất – Matt
@Matt Nếu đây chỉ là viết văn bản SQL ngắn hơn một chút, hơn là chỉ sử dụng cú pháp được đề xuất trong câu trả lời này và học trực tiếp với nó . Nếu đây là về LIKE hàng từ bảng khác (vì vậy bạn không thể thực sự xây dựng danh sách các giá trị trước), thì đây là một vấn đề khác hoàn toàn, mà sẽ yêu cầu một cái gì đó như: 'JOIN OTHER_TABLE ON NOT (YOUR_TABLE.FIELD LIKE OTHER_TABLE .FIELD) '... –
Tôi đã kết thúc bằng cách sử dụng điều này vì lợi ích đơn giản, nhưng câu trả lời regex là hữu ích như một cơ hội để tìm hiểu một chút mới của Oracle. Cảm ơn tất cả – Matt