복붙노트

[SQL] 오라클 DB : 어떻게 사건을 무시하고 쿼리를 작성할 수있다?

SQL

오라클 DB : 어떻게 사건을 무시하고 쿼리를 작성할 수있다?

제가 제목에 쓴 것처럼, 나는 SQL 쿼리, 오라클 DB에서 실행, 말을 할 수 있습니다 :

SELECT * FROM TABLE WHERE TABLE.NAME Like 'IgNoReCaSe'

내가하고 싶은 경우 쿼리 중 하나 "IGNORECASE", "IGNORECASE"또는 이들의 조합을 반환하는 것이, 어떻게 수행 할 수 있습니다?

이게 가능해?

해결법

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

    1.당신은 대소 문자를 구별로 설정 비교에 ALTER SESSION 문을 사용할 수 있습니다. 이 FAQ를 참조하십시오.

    당신은 대소 문자를 구별로 설정 비교에 ALTER SESSION 문을 사용할 수 있습니다. 이 FAQ를 참조하십시오.

    alter session set NLS_COMP=ANSI;
    alter session set NLS_SORT=BINARY_CI;
    

    모든이 원래 대답 한 후 팔년를 방문하는 사람들은 (10gR2의 경우) 승인되었습니다 :

    10gR2의 후, NLS_COMP 설정은`언어 적이어야합니다

    ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  2. ==============================

    2.

    Select * from table where upper(table.name) like upper('IgNoreCaSe');
    

    이와 달리, 대신 상부 낮다.

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

    3.당신은 하나를 사용하고 WHERE 조건의 양쪽에 낮추거나 위 기능을 할 수 있습니다

    당신은 하나를 사용하고 WHERE 조건의 양쪽에 낮추거나 위 기능을 할 수 있습니다

  4. ==============================

    4.또한 정규 표현식을 사용할 수 있습니다 :

    또한 정규 표현식을 사용할 수 있습니다 :

    SELECT * FROM TABLE WHERE REGEXP_LIKE (TABLE.NAME,'IgNoReCaSe','i');
    
  5. ==============================

    5.당신은 당신의 쿼리에서 위 () 함수를 사용할 수 있으며 함수 기반 인덱스를 사용하여 성능을 향상시키기 위해

    당신은 당신의 쿼리에서 위 () 함수를 사용할 수 있으며 함수 기반 인덱스를 사용하여 성능을 향상시키기 위해

     CREATE INDEX upper_index_name ON table(upper(name))
    
  6. ==============================

    6.... 또한 쿼리의 상부 또는 하부 외부로 변환을 수행 :

    ... 또한 쿼리의 상부 또는 하부 외부로 변환을 수행 :

    tableName:= UPPER(someValue || '%');
    

    ...

    Select * from table where upper(table.name) like tableName 
    
  7. ==============================

    7.당신은 상단에 두 값을 변환하거나 상부 또는 하부 기능을 사용하여 소문자 수 있습니다 :

    당신은 상단에 두 값을 변환하거나 상부 또는 하부 기능을 사용하여 소문자 수 있습니다 :

    Select * from table where upper(table.name) like upper('IgNoreCaSe')
    

    또는

    Select * from table where lower(table.name) like lower('IgNoreCaSe');
    
  8. ==============================

    8.또한 명백한 잊지 마세요, 테이블의 데이터는 경우가 필요합니까? 당신은 행 삽입 이미 낮은 경우와 처음부터 함께 할 (또는 소문자로 기존 DB 행을 변환) 할 수있다.

    또한 명백한 잊지 마세요, 테이블의 데이터는 경우가 필요합니까? 당신은 행 삽입 이미 낮은 경우와 처음부터 함께 할 (또는 소문자로 기존 DB 행을 변환) 할 수있다.

  9. from https://stackoverflow.com/questions/1031844/oracle-db-how-can-i-write-query-ignoring-case by cc-by-sa and MIT license