mysql 쿼리문 예제

서명된 정수 유형과 서명되지 않은 정수 형식의 조합이 있는 경우 결과가 서명되고 정밀도가 더 높을 수 있습니다. 예를 들어 형식이 INT에 서명되고 서명되지 않은 INT인 경우 결과는 BIGINT로 서명됩니다. CASE 식은 데이터 형식이 사용되는 컨텍스트에 따라 달라지는 결과를 반환합니다. 예를 들어 CASE 식이 문자열 컨텍스트에서 사용되는 경우 결과를 문자열로 반환합니다. CASE 식이 숫자 컨텍스트에서 사용되는 경우 결과를 정수, 소수점 또는 실제 값으로 반환합니다. 이 예제에서 테스트 열의 형식은 VARBINARY(4)(문자열 형식)입니다. 이 예제에서는 ORDER BY 절에서 CASE 식을 사용하여 정렬할 필드, 주 또는 국가를 결정했습니다. 값이 compare_value와 같으면 예를 들어, compare_value_1, compare_value_2 등, CASE 식은 해당 결과 즉, result_1, result_2를 반환합니다. 값이 compare_value와 일치하지 않는 경우 CASE 식은 ELSE 절에 지정된 결과를 반환합니다. 첫 번째 구문에 대 한 case_value는 식입니다. 이 값은 각 WHEN 절의 when_value 식 중 하나가 같을 때까지 비교됩니다.

같을 때_value가 발견되면 해당 THEN 절 문_list가 실행됩니다. when_value가 같지 않으면 ELSE 절 문_list가 실행되는 경우 실행됩니다. WHEN 절과 일치하지 않는 값을 처리하려면 빈 BEGIN을 포함하는 ELSE를 사용합니다. 이 예제와 같이 END 블록입니다. (ELSE 절에 사용된 들여쓰기는 명확성을 위한 목적으로만 사용되며, 그렇지 않으면 중요하지 않습니다.) IFNULL(expr1,expr2)의 기본 반환 형식은 STRING, REAL 또는 정수 순서로 두 식의 더 „일반”입니다. 식을 기반으로 하는 테이블의 경우 또는 MySQL이 임시 테이블에 IFNULL()에 의해 반환된 값을 내부적으로 저장해야 하는 경우를 고려합니다: MySQL CASE 식은 SELECT 또는 WHERE와 같은 쿼리 내에서 조건을 생성할 수 있는 흐름 제어 구조입니다. 절. MySQL은 두 가지 형태의 CASE 식을 제공합니다. expr2와 expr3이 모두 문자열인 경우 두 문자열 중 하나가 대/소문자를 구분하는 경우 결과는 대/소문자를 구분합니다. SQL CASE를 사용하여 회계 연도 를 기반으로 기록을 얻을 수 있습니다.

CASE 식의 반환 형식은 모든 반환 값의 호환 가능한 집계 된 형식이며 사용 되는 컨텍스트에 따라 달라 집니다. 숫자 컨텍스트에서 사용되는 경우 결과는 소수점, 실제 값 또는 정수 값으로 반환됩니다. 문자열 컨텍스트에서 사용 하는 경우 결과 문자열로 반환 됩니다. expr2 또는 expr3 중 하나만 명시적으로 NULL인 경우 IF() 함수의 결과 형식은 NULL이 아닌 식의 형식입니다. 그렇지 않으면 하나 이상의 인수가 소수점인 경우 결과는 소수점입니다. 다른 모든 형식 조합의 경우 결과는 VARCHAR입니다. expr1 = expr2가 true인 경우 NULL을 반환하고 그렇지 않으면 expr1을 반환합니다. 이것은 expr1 = expr2 다음 NULL ELSE expr1 END때의 경우와 동일합니다.

여기에 설명된 CASE 설명과 다른 사례 설명도 있습니다. 섹션 12.4, „흐름 함수 제어”를 참조하십시오. CASE 문에는 ELSE NULL 절이 있을 수 없으며 END 대신 END CASE로 종료됩니다. 저장된 프로그램에 대한 CASE 문은 복잡한 조건부 구문을 구현합니다. 두 번째 형식에서 CASE 식은 조건이 true인 경우 result_1, result_2 등과 같은 결과를 반환합니다. 모든 조건이 false이면 ELSE 부품의 결과가 반환됩니다. ELSE 파트가 생략된 경우 CASE 식은 NULL 을 반환합니다. 서명되지 않은 BIGINT는 서명된 정수 형식과 결합된 경우는 예외입니다. 결과는 충분한 정밀도와 배율 0의 DECIMAL입니다. 모든 형식이 BIT인 경우 결과는 BIT입니다.

그렇지 않으면 BIT 인수는 BIGINT와 유사하게 처리됩니다. expr2 또는 expr3부동점 값을 생성하는 경우 결과는 부동 점 값입니다. IF(임시 테이블에 저장될 때 문제가 될 수 있음)의 기본 반환 형식은 다음과 같이 계산됩니다.