簡體   English   中英

如何在主表的字符串字段-Teradata中搜索子查詢字符串的實例?

[英]How do I search for instances of a sub query string in a string field in the main table - teradata?

我有一個主表(MT),其中包含一個名為Wine_Variety的字段。 填充的數據如下所示:

CUSTOMER_NUMBER|WINE_VARIETY  

1001|SHIRAZ
1002|CHARDONNAY,MERLOT
1003|MERLOT,CHARDONNAY,MALBEC
1004|MALBEC,RIESLING

我已經開發了一個子查詢(SQ),它返回從交易表中提取的前五種暢銷葡萄酒的價值。 這基本上會產生一個如下所示的列表

VARIETY|QUANTITY

SHIRAZ|10000
CABERNET SAUVIGNON|9500
CABERNET MALBEC|8000
CHARDONNAY|7000
CHAMPAGNE|6000

我想找出MT中哪些客戶購買了SQ中出現的葡萄酒。

查看上面的列表,我希望查詢返回的客戶是1001-1003(含),而不是未購買前五名葡萄酒的客戶1004。

我以為可以做到這一點,但它帶有0行

sel * from MT 
where MT.Wine_Variety like any 
 (
   sel search_string from
    (
      sel top 5 variety, '''%'||variety||'%''' as search_string ,sum(quantity) as total_bought 
      from some_transaction_table
      where variety is not null and variety <> ''
      group by 1,2
      order by 3 desc
    ) a
 );

但是如果我嘗試以下操作,它就會起作用...

sel * from MT where MT.Wine_Variety like any ('%SHIRAZ%','%CHARDONNAY%')

有什么想法嗎?

我認為in要簡單得多:

select mt.*
from MT 
where MT.Wine_Variety in (select top 5 stt.variety
                          from some_transaction_table
                          where stt.variety is not null and stt.variety <> ''
                          group by stt.variety
                          order by sum(stt.quantity) desc
                         );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM