복붙노트

[SQL] 합니까 MS 액세스 지원 "CASE"절 ODBC와 연결하면?

SQL

합니까 MS 액세스 지원 "CASE"절 ODBC와 연결하면?

합니까 ODBC 지원 CASE WHEN MS 액세스에 대한 절? 지원하지 않는 다른 데이터베이스는 CASE 절 있습니까? ODBC와 MS 액세스에 연결하지만 예외가있는 동안 나는 다음과 같은 쿼리를 시도했다.

SELECT (CASE WHEN (AGE> 10) THEN 1 ELSE 0 END) 데모 FROM

[마이크로 소프트] [ODBC Access 드라이버] 구문 오류 쿼리 식 (누락 연산자) '(CASE (AGE> 10) THEN 1 ELSE 0 END)'

나는 대부분의 데이터베이스는 ODBC와 동안 연결 비교 표현식 (컴퓨팅) 새로운 '부울 열을'생성을 위해 작동하는 일반적인 방법을 찾기 위해 노력하고 있습니다. 사실, MS 액세스는 SELECT 절에서 비교를 지원하지만, 일부 다른 데이터베이스의 CASE 절 필요합니다. MS 액세스의 경우, SQL이 될 수 있습니다

데모 FROM SELECT AGE> (10)

그러나 다른 사람이해야

SELECT (CASE WHEN (AGE> 10) THEN 1 ELSE 0 END) 데모 FROM

해결법

  1. ==============================

    1.당신은 다음 예에서와 같이 IIF 문을 사용할 수 있습니다 :

    당신은 다음 예에서와 같이 IIF 문을 사용할 수 있습니다 :

    SELECT
       IIF(test_expression, value_if_true, value_if_false) AS FIELD_NAME
    FROM
       TABLE_NAME
    
  2. ==============================

    2.쿼리를 작성하는 데 액세스를 사용하고 있기 때문에, 당신은 SQL의 액세스의 버전에 충실해야합니다.

    쿼리를 작성하는 데 액세스를 사용하고 있기 때문에, 당신은 SQL의 액세스의 버전에 충실해야합니다.

    스위치 () 함수를 사용하여, 여러 가지 다른 반환 값 사이에서 선택합니다. 그래서 번역하고 예를 조금 연장 :

    select switch(
      age > 40, 4,
      age > 25, 3,
      age > 20, 2,
      age > 10, 1,
      true, 0
    ) from demo
    

    '진정한'케이스는 기본입니다. 당신이 그것을 가지고 있지 않으며 다른 경우이 없으면, 함수는 널 (null)을 반환합니다.

    사무실 웹 사이트는이에 문서를 가지고 있지만 자신의 예를 들어 구문은 VBA이며, 그것은 또한 잘못이다. 나는이에 그들에게 피드백을 준하지만 당신은 위의 예 다음 잘해야한다.

  3. ==============================

    3.나는 ACCESS SQL에서 비슷한 결과를 생성하기 위해 여러 IIF 문을 사용할 수 있었다.

    나는 ACCESS SQL에서 비슷한 결과를 생성하기 위해 여러 IIF 문을 사용할 수 있었다.

    IIf([refi type] Like "FHA ST*","F",IIf([refi type]="VA IRRL","V"))
    

    모든 널 유지됩니다 남아.

  4. from https://stackoverflow.com/questions/14920116/does-ms-access-support-case-when-clause-if-connect-with-odbc by cc-by-sa and MIT license