[SQL] 문자열 열이 절 사이에 SQL
SQL문자열 열이 절 사이에 SQL
난 문자열 컬럼을 통해 절 "사이에"사용하여 검색을 만들고 싶어. 나는이있어 몇 가지 테스트를 수행 :
의는 varchar 형의 "이름"열이 국가 테이블이 있다고 가정 해 봅시다. 나는이 쿼리를 실행하면 :
Select * from country where name between 'a' and 'b'
나는이 결과를 가지고 :
Argentina
.
.
.
Argelia.
내가 조금 발견 B로 시작하는 이상한 비트 것을 이들 국가를 제외합니다.
더 정확한 방법이 검색을 할 수있는 방법이 있나요? 다른이 검색을위한 아이디어?
미리 감사드립니다
해결법
-
==============================
1.표현식
표현식
name between 'A' and 'B'
동등
name>='A' and name<='B'
그래서 '아르헨티나'> = 'A'및 <= 'B'과 만족하는 조건이다. 그러나 '볼리비아'<= 'B'가 아닙니다. '볼리비아'> 'B'. 그것은 단지 첫 글자에 보이지 않는 : 그것은 전체 문자열을 살펴 봅니다. 가되어야한다 방법은 확실히 어느 : 그것은이 작업을 수행하지 않은 경우, 당신은 '스미스'가 아니라 '스미 더스'를 포함 범위를 원한다고 말할 수있는 방법은 없을 것입니다.
당신이 원하는 것을 달성하기 위해, 당신은 말할 수 :
substr(name,1,1) between 'A' and 'B'
또는:
name like 'A%' or name like 'B%'
또는:
name>='A' and name<'C'
-
==============================
2.나는 당신의 문제를 해결하는 방법을 알고 생각합니다. u는이 같은 뒤쪽에 추가 문자를 추가하는 시도 할 수 있습니다
나는 당신의 문제를 해결하는 방법을 알고 생각합니다. u는이 같은 뒤쪽에 추가 문자를 추가하는 시도 할 수 있습니다
select * from tablea where column1 between 'ABC' and 'ACD'+'Z'
이 ABC의 %에서 ACE에 결과를 반환합니다
-
==============================
3.나뿐만 아니라 시작 개국을 얻을 것입니다 또 다른 쿼리는 다음과 같습니다
나뿐만 아니라 시작 개국을 얻을 것입니다 또 다른 쿼리는 다음과 같습니다
Select * from country where name between 'a' and 'c'
-
==============================
4.결과는 정확하지만 오해 할 수있다. X x> = A 및 X <= B A와 B 수단. (자세한 내용은 POSTGRES 설명서를 참조하십시오.)
결과는 정확하지만 오해 할 수있다. X x> = A 및 X <= B A와 B 수단. (자세한 내용은 POSTGRES 설명서를 참조하십시오.)
당신이하는 A 또는 B 중 하나를 시작 줄을 얻고 싶은 경우에, 당신이 무슨 뜻인지 말 :
select * from country where name like 'a%' or name like 'b%'
당신이 사용하는 전체 성능을 얻을 것이다, 그래서 같은 테이블 인덱스를 사용합니다.
-
==============================
5.
Select * from country where substring(name FROM 1 FOR 1) between 'A' and 'B';
-
==============================
6.이 문은 작동하지 않았다 이유는 비교 문자열과 같은 길이가 될 때까지 SQL은 공백을 문자열을 채 웁니다입니다. 따라서, 비교, SQL에 비해 B는 ****** B 여러 공백 하였다. 다른 모든 문자, SQL 결정 B ***** 전에 공백의 나타난다는 B 후 [6 공백] 온 때문이다. 그래서 표시 할 수 없습니다.
이 문은 작동하지 않았다 이유는 비교 문자열과 같은 길이가 될 때까지 SQL은 공백을 문자열을 채 웁니다입니다. 따라서, 비교, SQL에 비해 B는 ****** B 여러 공백 하였다. 다른 모든 문자, SQL 결정 B ***** 전에 공백의 나타난다는 B 후 [6 공백] 온 때문이다. 그래서 표시 할 수 없습니다.
from https://stackoverflow.com/questions/5980783/sql-between-clause-with-strings-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 쉼표 데이터베이스 필드에 값을 구분 (0) | 2020.04.21 |
---|---|
[SQL] PostgreSQL의에서 문자열 값 (같은 평가) 내부 쿼리를 실행할 수있는 방법이 있습니까? (0) | 2020.04.21 |
[SQL] 절과 절에서 테이블 조인을 떠날 때 경우의 차이점은 무엇입니까? (0) | 2020.04.21 |
[SQL] SQL 서버 * = 연산자? (0) | 2020.04.21 |
[SQL] 어떻게 SQL Server의 시간 필드를 요약하기 (0) | 2020.04.20 |