2017-08-28 6 views
0

Comment lancer une exception dans une instruction case? Je crois que signal est la déclaration correcte. La déclaration de cas est lorsque le mot « corp » est trouvé dans le nom alors un 1 dans la colonne mais je veux une exception si le mot « dollar » est au nomException dans l'instruction case

Name      Is_comp 
Dollar Tree Corp  
First Hand Corp   1 

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

Cela serait une chose très étrange à faire dans une instruction SQL. Quel est votre jeu final ici? Cela ressemble à un problème XY. – JNevill

+0

Fondamentalement, j'ai une liste de noms que j'ai besoin de trier manuellement et de déterminer si le nom est une entreprise ou une personne. J'essaie de filtrer un peu les noms communs des sociétés comme LLC, INC, CO. Mais parfois je rencontre des problèmes comme le nom de la société "Dollar Tree Inc" et le nom de la personne "Finch". Je dois faire une exception. – tryingtolearn

Répondre

0

Je pense que, d'après ce que vous recherchez, vous avez juste besoin d'une instruction 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

Donc dans ce cas, vous avez INC. Je ne voudrais pas que Finch soit inclus comme 1 dans la colonne. En ce moment, vous avez INC en tant que% inc% signifiant que tout avec INC sera inclus. Je veux exclure Finch – tryingtolearn

+0

Aussi, 'LIKE ANY' ne semble pas fonctionner – tryingtolearn

+0

Toujours la même idée. J'ai mis à jour la réponse pour exclure finch (soit individuellement ou dans une liste) – JNevill