Spotfire Case 语句查找文本

Spotfire Case statement find text

我一定是在画空白,但我需要写一个 case 语句来搜索文本,如果文本中的任何地方都存在“(2)”,那么 "two" 否则如果任何地方都存在“(3)”然后在正文中 "three"。文本值的长度各不相同,并且出现在字符串的不同部分,所以我不能使用 right() 或 left()。我尝试使用 'case when [column] ~= "(2)" then "two" ......end' 但它没有正常工作。

这里有一个表达式,可以满足您的需求:

case  
    when [Value]~=".*\(2\).*" then "Two" 
    when [Value]~=".*\(3\).*" then "Three"
end

注意CASE语句是按顺序执行的,BREAK一旦满足一个条件。因此,正如您在第 4 行中看到的那样,如果 (2) 和 (3) 都存在,则 "Two" 的结果将为真,并且 "Three" 检查将永远不会发生。