2013-08-27 157 views
2

後,我跑我的select語句,我得到了下面的值「看到圖像」編寫的SQL Server case語句

我想有一個case語句來檢查,如果BloodPressureSystolic == 0,如果是這樣,那麼從BPSRSit拉的價值觀和BPSRSit然後添加,然後將值添加到像這樣的「115/65」臨時表可以有人告訴我如何寫這樣的情況。

data returned after select

這裏是我的,我想一個case語句添加到

SELECT ad.ApptDate , 
    ISNULL(v.Temperature, 0) AS Temperature , 
    ISNULL(v.PS, 0) AS PerfStatus , 
    v.* 
FROM vitals v , 
    AppointmentData ad 
WHERE v.PatientId = 11 
    AND ad.ApptId = v.ScheduleId 
    AND ad.ApptDate < GETDATE() 
    AND ad.StatusId NOT IN (3, 8) 
+2

使用隱式的加入是一個SQL antiptttern。你應該停止使用它們。 – HLGEM

回答

4
CASE WHEN BloodPressureSystolic = 0 AND BloodPressureDiastolic = 0 THEN 
     CAST(BPSRSit AS VARCHAR(10)) + '/' + CAST(BPDRSit AS VARCHAR(10)) END 
+0

我應該添加這個「結束AS溫度」,所以我得到的數據到溫度 – Robert

+0

(CASE WHEN血壓舒張= 0和血壓舒張= 0 THEN \t CONVERT(VARCHAR(10),BPSRSit)+'/'+ CONVERT(VARCHAR(10 ),BPDRSit)END)TEMP – Sonam

+0

當BloodPressureSystolic!= 0和BloodPressureDiastolic!= 0時怎麼樣?我可以在一個選擇中選擇兩種情況嗎? – Robert

0

對於MySQL,你有兩個選擇中使用CASE statment select語句。 http://dev.mysql.com/doc/refman/5.0/en/case.html

CASE [case value] WHEN [value] THEN [output] END 

OR

CASE WHEN [search conditions] THEN [output] END 

關於你的問題,你可以使用這樣的事情:

select ad.ApptDate , 
    ISNULL(v.Temperature, 0) as Temperature, 
    ISNULL(v.PS, 0) as PerfStatus, 
    v.*, 
    CASE WHEN (BloodPressureSystolic = 0 AND BloodPressureDiastolic = 0) THEN CONCAT(BPSRSit, "/", BPDRSit) END AS myOutput 
from vitals v,AppointmentData ad 
Where v.PatientId = 11 
    And ad.ApptId = v.ScheduleId 
    and ad.ApptDate < GETDATE() 
    and ad.StatusId not in (3,8) 
+0

但是用戶並沒有問及它如何在MySQL中完成。而且你的查詢是錯誤的,不會得到所需的輸出。 – Sonam