如何为sql cmd导出嵌入if语句
问题描述:
我有一个运行并导出CSV文件的SQL cmd。如何与我的查询中返回的字段进行比较,并根据这些字段在导出中显示文本?如果它有“标题”部分,我想比较2个字段“First_Unit”和“Unit”。如果他们是平等的,我想添加文本“主要”,如果他们不是那么我想要“备份”。因此,在本节中,以下是逻辑上的看法:'BWC - '+ UPPER(投诉)+ 'Primary'ELSE'Backup' as Title。因此,我希望在该列中出现在这些数据末尾的两个文本。如何为sql cmd导出嵌入if语句
感谢 TJ
这里是原始查询:
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
答
可以使用CASE语句,像这样:
'BWC - ' + UPPER(Complaint) + (CASE WHEN First_Unit = Unit THEN 'Primary' ELSE 'Secondary' END) As Title
+0
完美运作。非常感谢你 – moore1979
+0
很高兴帮助。 :)你介意在这种情况下接受答案吗? –
我试图使用CASE语句,但它导致了一个错误或者在其中。 – moore1979
你的CASE是什么样的,错误是什么? –
问题是我没有在()中包含CASE语句,所以它在处理查询时出错。我不记得确切的错误是什么。 – moore1979