我有一個數據集TERADATA類似於如下: '!'替代喜歡/像任何?...正則表達式?
Customer_ID | Targeting_Region
12 | targ=EU, targ=!Eu.Fr
34 | targ=Asia
56 | targ=!EU
的表示'不等於'。例如,第一排的客戶想要瞄準歐盟,但排除法國。
我想創建一個標記(帶有'1')任何行的地方,有'積極'的目標。通過「積極」定位,我指的是某個特定區域被明確包含的任何行('負面'定位將是某個區域被明確排除的地方,比如法國排在第1行)。例如,第1行包含正面和負面的定位,第2行只包含正面定位,第3行只包含負面定位。
我遇到的問題是,一個簡單的case語句不會工作(據我所知)。我曾嘗試下面的語句2:
(case when targeting_region like '%targ=%'; then 1 else 0 end) as target_flag
(case when ((targeting_region like '%targ=%';) and (targeting_region not like '%targ=!%';)) then 1 else 0 end) as target_flag
首屆上述聲明不起作用,因爲它會返回1兩個「TARG =」和「TARG =!
上面的第二條語句不起作用,因爲它只會返回1,只有正面定位的行。因此,第1行(上面)將返回0(我希望它返回1)
請注意,'targ ='後面的值也可以是數字。例如,'targ = 12345'
關於如何完成此任務的任何想法?我聽說Teradata有一種叫做regexp的東西,但經過一番搜索後,我一直無法找到它的一個很好的解釋。
謝謝!
問題我得知的是,某些行將有一個積極和消極的目標。例如,請參閱我的原始帖子中的第1行。像這樣的一行將返回0與您的代碼,而我需要它返回1. 感謝您的迴應,但! – rahimftd