2017-07-15 4 views
0

J'ai un cmd SQL qui exécute et exporte un fichier CSV. Comment puis-je comparer aux champs renvoyés dans ma requête et afficher du texte dans l'exportation en fonction de ces champs? Où il a la section "Titre" je veux comparer 2 champs "First_Unit" et "Unit". Si elles sont égales je veux ajouter le texte "primaire" si elles ne sont pas alors je veux "sauvegarde". Donc, c'est dans cette section et voici comment cela ressemblerait logiquement: 'BWC -' + UPPER (Plainte) + 'Primaire' ELSE 'Sauvegarde' comme titre. Donc les 2 textes que je voudrais voir apparaître à la fin de ces données dans cette colonne.comment embarquer if instruction pour sql cmd export

Merci TJ

Voici la requête d'origine:

sqlcmd -S PDCAD -d Ver2_CAD -E -Q "select Active_Calls.Call_Number AS 'Event ID',Officer_IDs AS 'Officer Badge ID', Date_Received AS 'Officer Dispatched DateTime',Time_Complete AS 'Officer Cleared DateTime',Active_Calls.Call_Number AS 'Report Number',UPPER(Complaint) AS 'Category', '' as Tag,'BWC - ' + UPPER(Complaint) as Title,Actual_Incid_Location AS 'Street',Actual_Incid_City AS 'City', ISNULL(Actual_Incid_State,'CT') AS 'State', RIGHT('0'+CONVERT(VARCHAR,Actual_Incid_ZIP),5) AS 'ZIP Code' from Active_Calls INNER JOIN CALLUNITDATA CALLUNITDATA ON Active_Calls.Call_Number=CALLUNITDATA.Call_Number WHERE Officer_IDs <> 'NHFD' AND Officer_IDs <> 'POST53' AND Officer_IDs <> 'POST54' AND Officer_IDs <> 'POST52' AND Officer_IDs <> 'DFD' AND Officer_IDs <> 'NFD' AND Officer_IDs <> 'DFD3' AND Officer_IDs <> 'NHFD2' AND Officer_IDs <> 'UNIT50' AND Officer_IDs <> 'NFD2' AND Officer_IDs <> 'DFD2' AND Officer_IDs <> '1129'AND Officer_IDs <> '2120' AND Officer_IDs <> '0341' AND Officer_IDs <> 'MOB.UNIT51' AND Officer_IDs <> '3540' AND Date_Received >= DATEADD(day, -4, GETDATE()) ORDER BY Date_Received" -o "C:\TaserExportFolder\MyData.csv" -h 852544 -s"," -w 700 -W 
+0

Je tentais de utiliser une déclaration de CAS, mais il causait une erreur ou dedans. – moore1979

+0

À quoi ressemblait votre CASE et quelle était l'erreur? –

+0

Le problème était que je n'insérais pas l'instruction CASE dans(), ce qui donnait une erreur sur le traitement de la requête. Je ne me souviens pas de ce que l'erreur exacte a déclaré. – moore1979

Répondre

0

Vous pouvez utiliser l'instruction CASE comme ceci:

'BWC - ' + UPPER(Complaint) + (CASE WHEN First_Unit = Unit THEN 'Primary' ELSE 'Secondary' END) As Title 

Voir: http://sqlfiddle.com/#!6/439e14/1

+0

Cela a fonctionné parfaitement. Merci beaucoup – moore1979

+0

Glad it helps. :) Est-ce que ça vous dérange d'accepter la réponse dans ce cas? –