2014-12-23 4 views
2

SQL 쿼리 SELECT * FROM ["+fileName+"];을 사용하여 CSV 파일에서 데이터를로드하려고합니다. 조건없이 모든 데이터를 선택하면 예상대로 작동하지만 첫 번째 열에 문자열 ".BAK"가 포함 된 레코드는 생략하고 싶습니다. 아무도 내가 이것을 달성 할 수있는 방법에 대한 통찰력을 가지고 있습니까?CSV에서 SQL 조건부 선택

WHERE NOT LIKE '%.BAK%' 조건의 변형을 시도했지만 예상대로 작동하지 못합니다.

감사

CSV 파일이 포함되어있는 경우
+0

올바른 열 'WHERE col1 NOT LIKE'% .BAK % '을 (를) 입력 했습니까? 전체 쿼리를 게시 할 수 있습니까? – egreene

+0

어떻게하면 텍스트 파일에 연결합니까? HDR = YES입니까, 아니면 열 이름이 없습니까? – Steve

+0

SELECT * FROM [ "+ fileName +"]; 전체 작업 쿼리입니다. 그 다음 나는 tack하려고 애썼다 어디에서 '(1) 좋지 않은'% .BAK % ' 어디에서'(1) '% .BAK %'가 좋지 않다 WHERE [1] NOT like '% .BAK %' 그리고 대체 된 0 1 대신에. CSV에 열 이름이 없어서 번호로 첫 번째 열에 대한 참조가 문제가 될 수 있습니다. – Ax1sMundi

답변

3

, 첫 번째 줄에 열 머리글은

firstHeaderName,secondHeaderName,thirdHeaderName, ...... 

(예를 들어)를 실행하는 쿼리는

string cmdText = "SELECT * FROM [" + filename + "] WHERE firstHeaderName NOT LIKE '%.bak%'"; 

상황은 단순히 CSV의 첫 번째 행에 열 머리글이없는 행과 유사합니다. 이 경우
은 ConnectionString을이

string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; 
        Data Source=d:\temp\; 
        Extended Properties='text;HDR=No;FMT=Delimited'"; 

하고 명령 텍스트로 열 이름을 기존의 이름을 F1을

string cmdText = "SELECT * FROM [" + filename + "] WHERE F1 NOT LIKE '%.bak%'"; 

협약이되어 사용하여 첫 번째 열을 참조해야합니다 같은 것입니다 F1 (첫 번째 열), F2 (두 번째 열) 등이 있습니다.

+0

그 남자! "F1"은 필자가 참조해야하는 칼럼 이름이었다. 정말 고마워요 !! – Ax1sMundi