2010-04-07 7 views
2

I ont une table dans db2 qui a les champs suivantsmotif db2 sql correspondant

  • int xyz;
  • chaîne myId;
  • chaîne myName;

Exemple ensemble de données

xyz | myid   | myname 
-------------------------------- 
1 | ABC.123.456 | ABC 
2 | PRQS.12.34 | PQRS 
3 | ZZZ.3.2.2 | blah 

Je veux extraire les lignes où myName correspond au caractère jusqu'à "" dans le champ myId. Donc à partir des 3 lignes ci-dessus, je veux les 2 premiers rangs puisque myName est présent dans myId avant "."

Comment puis-je faire cela dans la requête, puis-je faire une sorte de correspondance de modèle dans la requête?

Répondre

2

GAUCHE et LOCATE travail dans l'instance de DB2 je peux connecter (qui ne peut aider bien sûr!)

Alors, espérons quelque chose comme ça ...

SELECT 
    * 
FROM 
    MyTable Z 
WHERE 
    LEFT(myid, LOCATE('.', myid)) = myname + '.' 
+0

Eh oui. Ça a marché. J'avais initialement trouvé la fonction charindex qui était disponible dans SQL Server et non dans DB2. LOCATE a travaillé parfait – Jitesh