2016-07-05 3 views
1

J'ai une instruction Select dans mon application VB6 ....SQL Server 2008 avec instruction select cas

est ici à quoi il ressemble .....

Dim str As string 

str = "SELECT CompID, Department from tblCompanies " & _ 
     "Where CompID in (123, 234, 345, 456) " & _ 
     "Order by CompID " 

Alors ce que je suis tryign faire ici est d'ajouter une instruction CASE WHEN à la clause WHERE - fondamentalement, je cherche à ajouter une chaîne à chaque nom de département, en fonction du COMPID. Donc, je dois préciser que ceux-ci sont de la COMPID que je veux choisir, je veux faire soemthing comme

Case when CompID = 123 Then ----ADD "GC" to that Department Name 

Je suppose que je dois le faire avant d'ouvrir mon recordset avec

rs.open str, g_CN, adOpenStatic 

Parce qu'une fois ouvert, il me semble que je reçois des erreurs lorsque j'essaie de l'éditer.

Dans l'ensemble, si mon recordset ressemble à ceci ...

Accounting 
Finance 
IT 
R&D 

Je suis en train de faire ressembler

"GC" - Accounting 
"GC" - Finance 
"BP" - IT 
"DC" - R&D 
+1

Alors avez-vous vraiment besoin de filtrer? La façon dont je le lis est que vous voulez juste cela dans le select. –

Répondre

1

le changer en,

Dim str As string 

str = "SELECT CompID, CASE WHEN CompID IN (123,234) THEN 'GC' " & _ 
       " WHEN CompID = 345 THEN 'IT' " & _ 
       " WHEN CompID = 456 THEN 'DC' " & _ 
       " ELSE '' END + ' - ' + Department AS Department from tblCompanies " & _ 
     "Where CompID in (123, 234, 345, 456) " & _ 
     "Order by CompID " 
0

Essayez ceci:

str = "SELECT CompID, CASE WHEN CompID = 123 THEN '""GC"" - ' ELSE '' END + Department As Department from tblCompanies " & _ 
     "Where CompID in (123, 234, 345, 456) " & _ 
     "Order by CompID " 
+0

pelase voir modifier, merci! il semble un peu plus difficile que je pensais – BubbaSparxx