2013-07-08 5 views
0

문자열을 구분 기호에 따라 분할하는 Transact SQL 함수 SimpleSplit이 있습니다. 예상대로테이블에 SQL 함수 적용 열 값

Processor 
RAM 
SSD 
Ethernet 

:이 결과

DECLARE @DelimitedString NVARCHAR(128) 
SET @DelimitedString = 'Processor,RAM,SSD,Ethernet' 
SELECT * FROM [dbo].[SimpleSplit](@DelimitedString, ',') 

다음과 같이 나는 그것을 사용할 수 있습니다.

DescrPROD_TABLE이라는 표가 있습니다. 이 함수는 열 Descr의 각 값에 적용하고 싶습니다. 나는 다음을 시도하고 그것은 작동하지 않습니다

SELECT p.[ID], p.[Descr] 
FROM [Amazon].[dbo].[PROD_TABLE] p 
OUTER APPLY [dbo].[SimpleSplit](p.Descr, '-') d 

를 출력에 난 단지 즉 SimpleSplit 기능에서 어떤 결과보기 IDDescr 열을 참조하십시오. 그러나, 나는

SELECT * 
FROM [Amazon].[dbo].[PROD_TABLE] p 
OUTER APPLY [dbo].[SimpleSplit](p.Descr, '-') d 

내가 마지막 열에서 SimpleSplit 함수의 결과를 볼 시도합니다. 이 쿼리는 왜 함수를 적용하지만 이전 쿼리는 적용되지 않습니까?

대답 대답 아래 mr.Rebands에

덕분에, 나는 결과의 이름을 필요한 것을 깨달았다. 따라서 * 일을하지만, 명시 적으로 내가 좋아하는 일을하는 데 필요한 열을 이름 :

SELECT p.[ID], p.[Descr], d.[Data] 
FROM [Amazon].[dbo].[PROD_TABLE] p 
OUTER APPLY [dbo].[SimpleSplit](p.[Descr], '-') d 
+1

함수가 테이블을 반환합니다. 'SimpleSplit' 결과 테이블의 열 이름은 무엇입니까? select 문에 해당 열 이름을 포함하지 않아도됩니까? 'OUTER APPLY'가 적용되지만 결과가 선택되지 않습니다. –

+0

와우 ** mr.Reband **. 빠른 답장을 보내 주셔서 감사합니다. 나는 당신이 대답으로 당신의 코멘트를 넣어줬으면 좋겠다. –

답변

1

함수가 테이블을 반환 - SimpleSplit 결과 테이블의 컬럼 이름은 무엇인가? select 문에 해당 열 이름을 포함시켜야합니다.

OUTER APPLY이 적용되지만 결과는 선택되지 않습니다.