텍스트 파일에 직원 이름 목록이 있습니다.WHERE 절의 텍스트 파일에서 입력 사용
각 이름을 하나씩 검색하는 대신 텍스트 파일의 모든 이름에 대해 한 번 데이터베이스를 검색하려고합니다. 어떤 것은 좋아한다 :
select emplayeeID, Salary from employees where employee-name in "C:\myfile.txt"
그것은 가능하니? 그렇다면 SQL 명령은 무엇입니까? 감사.
텍스트 파일에 직원 이름 목록이 있습니다.WHERE 절의 텍스트 파일에서 입력 사용
각 이름을 하나씩 검색하는 대신 텍스트 파일의 모든 이름에 대해 한 번 데이터베이스를 검색하려고합니다. 어떤 것은 좋아한다 :
select emplayeeID, Salary from employees where employee-name in "C:\myfile.txt"
그것은 가능하니? 그렇다면 SQL 명령은 무엇입니까? 감사.
아니요, 적어도 하나의 명령에는 불가능합니다.
(GBN의 답변을 참조 - 당신이 그것을 도 하나의 명령에서 가능한입니다하려면 ....)
은 당신이 할 수있는 것은 이것이다 :
dbo.Employees
테이블과 방금 작성한 임시 일괄로드 테이블간에 JOIN을 수행하십시오.같은 것을 사용, 당신의 이름을 삽입합니다
BULK INSERT EmployeeNames
FROM 'c:\myfile.txt'
WITH
(FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n')
을 다음 할 당신의 가입 :
SELECT e.EmployeeID, e.Salary
FROM dbo.Employees e
INNER JOIN dbo.EmployeeNames en ON e.Name = en.Name
당신은 쉼표로 구분 된 문자열
select employeeID, Salary from employees where employee-name in ('Joe Blogs', 'Susan Smith', 'Jimi Hendrix')
에 텍스트 파일을 구문 분석 할 수
많은 것들이 a) 당신의 텍스트 파일의 크기와 b) 당신이 당신의 쿼리를 구성하기 위해 사용하고있는 플랫폼에 달려 있습니다.
예, OPENROWSET with BULK을 사용하십시오. 그래도 format 파일이 필요합니다.
select
E.emplayeeID, E.Salary
from
employees E
JOIN
OPENROWSET (
BULK 'c:\myfile.txt',
FORMATFILE = 'c:\myfileformat.txt'
) B ON E.name = B.name
+1 sheeesh !! 당신은 항상 내가 생각한 진리와 모순되는 위대한 아이디어를 가지고 있습니다. :-) –
내 친구, 이것은 단순히 멋진 답변입니다! +1 그리고 만약 내가 +10 수 있습니다! –
@ marc_s, 나는 우리 모두가 당신 같은 사람조차도 새로운 것을 배울 수 있다고 생각합니다. 나는 네가 내 친구를 배울 수있는 것이 아무것도 없다고 생각하지 않았다! :) –
시도해 보겠습니다. 내 텍스트 파일에 직원의 성/이름이 하나만있는 경우 "WITH ..."문을 포함시켜야합니까? – kamari
@kamari : 필드를 구분하는 방법 (FIELDTERMINATOR = ....')과 행 (줄)을 어떻게 분리 할지를 일괄 적으로 알려 주어야합니다. –
예. 알았습니다. 그리고 그것은 나를 위해 잘 일했다 .... 고마워 많은 마크 ..... – kamari