2013-08-27 2 views
2

После того как я бегу мое отборное заявление я получаю следующие значения «см Изображение»случай сервера заявление Написание SQL

Я хотел бы иметь case заявление, чтобы проверить, если BloodPressureSystolic == 0 и если да, то вытащить значения из BPSRSit и BPSRSit и добавьте затем значения в таблицу temp, например, это «115/65», может кто-нибудь покажет мне, как написать такой случай.

data returned after select

Вот мой выбор заявление, что я хотел бы добавить случай заявление

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

Должен ли я добавить этот «END AS Temp», поэтому я получаю данные в темпе – Robert

+0

(CASE WHEN BloodPressureSystolic = 0 И BloodPressureDiastolic = 0 THEN \t CONVERT (VARCHAR (10), BPSRSit) + '/' + CONVERT (VARCHAR (10), BPDRSit) END) TEMP – Sonam

+0

как о том, когда BloodPressureSystolic! = 0 И BloodPressureDiastolic! = 0. Могу ли я иметь два случая в одном выборе? – Robert

0

Для MySQL у вас есть два варианта при использовании CASE-Постулаты. http://dev.mysql.com/doc/refman/5.0/en/case.html

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

ИЛИ

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

Смежные вопросы