2017-08-28 88 views
0

如何在case语句中引发异常?我相信signal是正确的说法。当字“总公司”的名称被找到,那么必须在列1 case语句,但我希望有一个例外,如果单词“美元”是在名称case case中的例外

Name      Is_comp 
Dollar Tree Corp  
First Hand Corp   1 

Select 
when name like 'corp' 
then 1 
end as is_comp 
+0

这将是一个非常奇怪的事情要做的SQL语句。你在这里结束的比赛是什么?这感觉就像一个XY问题。 – JNevill

+0

基本上,我有一个名单,我需要手动整理并确定名称是公司还是个人名单。我试图对LLC,INC,CO等公司的常见名称进行一些过滤,但有时候遇到公司名称“Dollar Tree Inc”和人名“Finch”等问题时,我需要在发生这种情况时例外。 – tryingtolearn

回答

0

我认为,基于什么你正在寻找,你只需要一个鸽友CASE声明:

SELECT 
    CASE 
     WHEN 
      name LIKE ANY ('%corp%','%llc%','%inc%') /*list of names with wildcards*/ 
      AND name not like '%Finch%' /*don't match on finch%/ 
      AND name not like ANY ('%Finch%','%Brian%') /*or optionally don't match on any of these name substrings*/ 
      THEN 1 
     END 'is_comp' 
FROM <table> 
+0

所以在这种情况下,你有INC。我不希望Finch在列中被包含为1。现在,你有INC作为%inc%,这意味着包含INC的所有内容。我想排除芬奇 – tryingtolearn

+0

另外,“似乎任何”似乎没有工作 – tryingtolearn

+0

仍然是相同的想法。我已经更新了排除finch的答案(单独或列表) – JNevill