sql - concaténation de cas déclarations

Je veux faire quelque chose de similaire à:

SELECT
   ('['+twt.dept+']' + 
     CASE WHEN twt.typ <> 'EMPTY' AND twt.typ > '' THEN '-['+twt.typ+']' END
     + CASE WHEN twt.subtyp_1 <> 'EMPTY' AND twt.subtyp_1 > '' THEN '-['+twt.subtyp_1+']' END
     + CASE WHEN twt.subtyp_2 <> 'EMPTY' AND twt.subtyp_2 > '' THEN '-['+twt.subtyp_2+']' END
     + CASE WHEN twt.subtyp_3 <> 'EMPTY' AND twt.subtyp_3 > '' THEN '-['+twt.subtyp_3+']' END) AS category
FROM table1 AS tb1
JOIN table2 AS twt ON (tb1.id = twt.id)

Je sais que je peux utiliser fusionner ou à l'aide de l'empilement des cas, mais y a de toute façon de l'utiliser plus simple à la recherche de la syntaxe, comme je l'ai ici pour le faire (surtout sans avoir un monstre de cas pour la 5ème cas)?

PS de la catégorie est de retour à vide, alors que j'ai vérifié qu'au moins deux de le champ ci-dessus ne contiennent des valeurs.

Je suis l'espoir d'obtenir quelque chose comme [chaussures]-[sandales]-[crêpes]-[brioche à la cannelle]

  • Ce SGBDR et de version? Aussi vous n'avez pas de ELSE dans votre CASE des expressions qui signifie qu'ils peuvent retourner NULL. Et la concaténation de NULL rendements NULL. Est-ce l'intention?
InformationsquelleAutor Magic Lasso | 2013-08-07