2012-09-11 4 views
0

used/secondhand 또는 new인지에 따라 단일 열 price에서 두 개의 열을 만들어야합니다. Old는 used 어딘가에 format 란으로 표시됩니다. 하나는 '가격 전세'로 다른 하나는 price (세금 포함)입니다. 다음 코드 (오류없이 오류가 있지만 내 요구 사항에 따라 오류가 발생 함)가 더 잘 설명되기를 바랍니다.Select 문에서 IF() [Control Flow Function] case를 사용하는 방법?

형식 = '% 사용 %'또는 형식 = '%의 간접 %가 "다음 ( AS 부호 정수를 가격) 다른 CAST (가격 AS 부호 정수) * 0.8 단으로서 '프리스 전 세금 'CAST 케이스 , 가격

로 CAST (가격 AS 부호없는 정수)

여기에 기본적으로 나는 새로운 제품에 대한 가격 * 0.8 열 그냥 price 사용되는 제품을 표시해야합니다. 데이터베이스의 format에는 사용 된 기사에 대한 정보가 used/secondhand으로 포함되어 있지만 새로운 정보는 없습니다.

나는 this link 뿐만 아니라 관련된 몇 가지 질문으로 stackoverflow 이 아니라 나를 이해하기 충분하지 따랐다. 출력을 여기에 넣으려고했으나 그렇게하기가 어려웠습니다. 당신이 그것을 해결할 필요가 있다고 생각한다면 나는 그것을 할 것입니다.

답변

2

This is a great link that teaches Inline IF and CASE statement in MySQL.

코드 :

IF Statement

SELECT IF(score > 100, 100, score) AS score 
FROM exam_results 

CASE Statement

SELECT CASE num_heads 
WHEN 0 THEN 'Zombie' 
WHEN 1 THEN 'Human' 
ELSE 'Alien' 
END AS race 
FROM user 
+0

오우삼, 나는이 코드를 이해할 수있다, 당신의 빠른 응답 주셔서 감사하지만 동안 'string'을 비교하기 위해'if'를 사용하면 혼란 스럽습니다. 질문에 내 코드에서와 같이 다른 문자열의 중간에있는 문자열 비교를 고려하면 도움이 될까요? – tough

+1

이 스 니펫을 시도해 볼 수도 있습니다. '%% used %'또는 '% secondhand %'와 같은 형식을 사용할 경우 '='(* 등호 *) 대신 ** LIKE **를 사용하십시오. –

+0

@ 정수로 캐스팅하는 경우에는 'signed'또는 'unsigned'여야합니다. ** ** CAST (가격은 UNSIGNED) ** –

관련 문제