2012-11-16 2 views
0

J'essaie d'obtenir quelque chose de ce genre dans SSIS OLEDB Source.Insérer les données sous condition; problème avec sous-requête

1) Compter les enregistrements de la table d'exception 2) S'il y a des exceptions, écrivez les données à feuille Excel 3) Sinon, écrivez « Aucune donnée disponible »

j'ai écrit une requête simple pour faire cela, mais obtenez l'erreur Msg 116, niveau 16, état 1, ligne 3 Une seule expression peut être spécifiée dans la liste de sélection lorsque la sous-requête n'est pas présentée avec EXISTS.

SELECT CASE WHEN (SELECT COUNT(*) FROM exceptionTable) > 0 THEN 
(SELECT * FROM exceptionTable) ELSE 'No Error data available' end 

Je comprends ce que le message d'erreur dit et savoir comment le résoudre, mais je ne peux pas penser à une solution alternative à ce problème. Toute aide serait appréciée. Merci.

+0

Et j'ai besoin de retourner toutes les colonnes de la table d'exception BTW s'il y a des enregistrements là-dedans. – rvphx

Répondre

1

Vous devriez être capable de gérer cela en utilisant le mot-clé EXISTS. Quelque chose le long de ces lignes devrait faire l'affaire:

if exists(select * from exceptionTable) 
    select * from exceptionTable 
else 
    select 'No Error data available' 

Le mot-clé exists spécifie un sous-requête qui peut être utilisé pour vérifier l'existence de toutes les lignes qui sont retournées par la sous-requête. Si aucune ligne n'est renvoyée, elle est évaluée à false et la clause ELSE est exécutée.