2014-04-11 2 views
-1

mysql에서 10 진수로 저장된 값을 점 (.)으로 변환하는 sql 쿼리가 있습니다. SQL Server를 지원하도록 변환하려면 어떻게해야합니까?mysql 쿼리를 SQL Server로 변환

enter image description here

이것은 SQL 서버 오류 :

Msg 156, Level 15, State 1, Line 2 
Incorrect syntax near the keyword 'IF'. 
Msg 102, Level 15, State 1, Line 2 
Incorrect syntax near ','. 
+1

'IF'가 유효하지 않습니다. 'CASE' 문을 살펴볼 수도 있습니다. – Zane

답변

4

를 사용하여 SQL 표준 CASE 표현 :

쿼리

SELECT routines.date, routines.time, 
SUM(IF(measurements.title = 'T_Temperatur', CAST(REPLACE(routines.value, ',', '.') AS DECIMAL(18, 2)), null)) AS Temperatur 
FROM routines 
INNER JOIN measure_routine ON routines.id = measure_routine.routine_id 
INNER JOIN measurements ON measure_routine.measure_id = measurements.id 
INNER JOIN pools ON measure_routine.pool_id = pools.id 
GROUP BY routines.date, routines.time 
ORDER BY routines.date, routines.time; 

MySQL의 결과 -이 경우 (합계입니다.

SELECT routines.date, routines.time, 
SUM(CASE WHEN measurements.title = 'T_Temperatur' THEN CAST(REPLACE(routines.value, ',', '.') AS DECIMAL(18, 2)) ELSE NULL END) AS Temperatur 
FROM routines 
INNER JOIN measure_routine ON routines.id = measure_routine.routine_id 
INNER JOIN measurements ON measure_routine.measure_id = measurements.id 
INNER JOIN pools ON measure_routine.pool_id = pools.id 
GROUP BY routines.date, routines.time 
ORDER BY routines.date, routines.time; 
관련 문제