0 votes

CONCAT et SQL

Je dois rechercher dans une base de données DB2 une chaîne de caractères qui est une concaténation de deux colonnes. Existe-t-il un moyen de CONCATtre les colonnes puis d'utiliser la chaîne combinée dans la clause WHERE ? J'ai fait des recherches mais je n'ai pas trouvé de réponse à cette question.

Merci

1voto

Tony Borf Points 1950

Après avoir cherché un peu plus dans les manuels IBM, j'ai trouvé cette solution qui fonctionne pour moi ;

Select
 Col1 || Col2 as MyCol1
Where CONCAT(RTRIM(Col1),(RTRIM(Col2)) = 'searchvalue'

Merci pour votre aide

0voto

RedFilter Points 84190

Essayez

select * 
from MyTable
where Col1 concat Col2 = 'MySearchValue'

0voto

X-Istence Points 7179

Quelque chose comme

SELECT *, CONCAT(column1, column2) AS s FROM table WHERE column3 = s

0voto

Steve Schnepp Points 2490

La solution la plus simple fonctionne, il n'est pas nécessaire d'utiliser CONCAT() .

 SELECT Col1 || Col2 as MyCol1 
 FROM MY_TABLE
 WHERE Col1 || Col2 = 'searchvalue'

Attention, la recherche ne pas être indexé . Si vous voulez qu'il soit indexé, vous devez utiliser un index basé sur une fonction. Alors 2 possibilités :

  1. Le moteur de base de données le supporte (je ne pense pas que DB2 le fasse).
  2. Faites-le vous-même : utilisez une colonne indexée supplémentaire mise à jour par des triggers sur INSERT & UPDATE.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X