2017-05-22 12 views

答えて

2

複数の行が返さとして使用サブクエリは、今では奇妙ですそれを定式化する方法...

基本的なSQLチュートリアルに戻ると、'%@'のような文字列リテラルは、ILIKE述語のオペランドになる可能性があります。b eはIN()節と連結されています。これはそれ自身の述語です。

emailsテーブル内のすべての行が、アットマークとドットの間にあるdictionary.wordlistの単語のいずれかを含んでいるとします。

dictionary.wordlistは、1列の表がVARCHAR()または他の文字列形式であることを希望します(私が間違っている場合は修正します)。そうであれば、次のようにすることができます:

WITH 
-- out of "dictionary.wordlist", create an in-line-table containing a column 
-- with the wildcard operand to be later used in an ILIKE predicate 
operands(operand) AS (
    SELECT 
    '%@'||wordlist.word||'.%' 
    FROM dictionary.wordlist 
) 
SELECT 
    emails.* 
FROM emails 
INNER JOIN operands 
ON email.address ILIKE operands.operand 
; 

もちろん、他の方法もありますが、これもその1つです。 私はそれが非常に高速になりますと言っしようとしていないよ - 幸運

...条件がパフォーマンスすることはできません登録しようとしてILIKE述語

マルコ・セイン

関連する問題