簡體   English   中英

帶有文本搜索的案例陳述

[英]Case Statement with Text Search

我有一個用於銷售分析的數據集(使用SQL Server Management Studio)。 對於此示例,當業務代表完成銷售電話或客戶復核時,他們(通過下拉列表)列出了他們在電話/復核中討論的主題。 然后,客戶在事后購買了相應的產品列(在此示例中,我正在使用汽車)。 我在想也許要通過案例說明的方式來做,但是在本質上,我需要弄清楚該人建議的制造商是否存在於產品欄中:

在此處輸入圖片說明

因此,在此示例中,在第1行中,他們建議馬自達和一輛豐田汽車(以“;”分隔),而馬自達則出現在產品系列中,以便隨后將其標記為有效。 在第3行中,他們建議使用本田,但此人最終得到了一輛吉普車,因此效果不佳。 等等等等。

我希望它是動態的(也許是EXISTS ??),這樣,我就不必編寫/維護“有效”之類的東西=案例時主題為“%Mazada%”而產品為“%Mazada%” ,“是”,“否”

有什么想法嗎?

如果您有一個Product表,那么您也許可以擺脫像這樣的東西:

select RowId, Topic, Products,
       (case when exists (select 1
                          from Products p
                          where t.Topic like '%'+p.brand+'%' and
                                t.Products like '%'+p.brand+'%'
                         )
             then 'Yes' else 'No'
        end) as Effective
from t;

這是基於以下事實:在topicproducts領域中似乎都提到了“品牌”。 如果沒有這樣的表,則可以執行以下操作:

with products as (
      select 'Mercedes' as brand union all
      select 'Mazda' union all
      select 'Toyota' . . .
     )
select RowId, Topic, Products,
       (case when exists (select 1
                          from Products p
                          where t.Topic like '%'+p.brand+'%' and
                                t.Products like '%'+p.brand+'%'
                         )
             then 'Yes' else 'No'
        end) as Effective
from t;

但是,這可能不起作用,因為在現實世界中,文本更加復雜。 它具有拼寫錯誤,縮寫和同義詞。 不能保證兩個列表中甚至都存在匹配的單詞,依此類推。 但是,如果您的文本足夠干凈,則此方法可能會有所幫助。

暫無
暫無

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

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