Take tej tabeli SŁOWAOracle SQL - znajdź NIE wartości w tabeli
WORD
Hello
Aardvark
Potato
Dog
Cat
i to listę:
('Hello', 'Goodbye', 'Greetings', 'Dog')
Jak mogę zwrócić listę słów, które nie znajdują się w tablice słów, ale są na mojej liście?
Jeśli mam tabelę, która „zawiera wszystkie możliwe słowa”, mogę zrobić:
SELECT * from ALL_WORDS_TABLE
where word in ('Hello', 'Goodbye', 'Greetings', 'Dog')
and word not in
(SELECT word from WORDS
where word in ('Hello', 'Goodbye', 'Greetings', 'Dog')
);
Jednak nie mam takiego stołu. Jak inaczej można to zrobić?
Ponadto, tworzenie nowej tabeli nie jest opcją, ponieważ nie mam takiego poziomu dostępu.
Przyjemna technika) Ale co, jeśli odmówiono dostępu do funkcji sys. *? – denied
@denied No cóż, byłoby to naprawdę niezręczne. Mogą istnieć inne sposoby zamiany rozdzielonej listy ciągów na kolumnę, która jest bardziej elegancka niż sys.dbms_debug_vc2coll. Być może istnieje rozwiązanie wykorzystujące czysty SQL? – Wolf
@Denied W tym kontekście 'sys' nie jest złą rzeczą. Ktoś mógłby teoretycznie odmówić ci dostępu do tego typu, ale prawdopodobnie nie jest to coś, o co musisz się martwić. Jest prawie tak samo prawdopodobne, jak ktoś, kto usuwa dostęp do 'sys.dbms_output'. –