를 검색하기 전에 필드의 값을 교체, 내가 이런 일을하고 싶지 (들)데이터베이스에서 검색 속도를 높이려면
나는 그것을 어떻게 할 수 있습니까?
이 나를 위해 일 did'nt :
"SELECT * FROM TheTableName WHERE REPLACE(TheFieldName, ' ', '')=test"
오류 : 정의되지 않은 함수는 식의 '교체'
를 검색하기 전에 필드의 값을 교체, 내가 이런 일을하고 싶지 (들)데이터베이스에서 검색 속도를 높이려면
나는 그것을 어떻게 할 수 있습니까?
이 나를 위해 일 did'nt :
"SELECT * FROM TheTableName WHERE REPLACE(TheFieldName, ' ', '')=test"
오류 : 정의되지 않은 함수는 식의 '교체'
이 replace()
가 SQL 서버에 알려진 (또는 거의되지 않는다는 것을 나에게 가능성이 보인다 다른 데이터베이스). 그러나 자신이 생각하는 데이터베이스를 사용하고 있는지 확인하십시오.
test
을 문자열로 사용하고 있기 때문에 사용자의 쿼리에 오류가 있습니다. 쿼리가 실제로 다음과 같이 보입니까?
SELECT *
FROM TheTableName
WHERE REPLACE(TheFieldName, ' ', '') = 'test';
따옴표는 'test'
입니다.
' (Microsoft Activex 데이터 객체 2.8 라이브러리) –
TRIM과 같은 것을 찾고 있지만 검색 문자열의 모든 공백을 제거하려면 –
OBJRS_RV_LOCAL.Open (SQL_STRING, OBJCN, adOpenForwardOnly, adLockReadOnly, adCmdText)을 호출하십시오. –
이렇게하면됩니다. 당신은 심지어 비교를하고 시작하기 전에 TheTableName의 모든 행에 대한 교체 작업을 할 것입니다 여기서 뭐하는거야
"SELECT * FROM TheTableName WHERE rtrim(ltrim(TheFieldName))=test"
네, 다른 질문을 할 수 있습니다. 'TheFieldName' 열의 공백이 그대로 유지됩니다. 앞뒤 공백을 제거하면됩니다. –
. 이렇게해도 검색 속도는 향상되지 않습니다. – DancingFool
@DancingFool 당신은 vb6 코드의 프로세스 속도가 SQL 엔진 내부의 프로세스 속도와 동일하다는 것을 확신합니까? –
vb6에서 내 adodb 버전이 SQL의 replace 명령을 지원하지 않는 것으로 보인다고해서 인터넷을 다시 검색했습니다. (이 방법이없는 것 같습니다. SQL 명령 대신 vb6에서 프로세스를 수행하기로 결정했습니다. '( –