문자열을 구분 기호에 따라 분할하는 Transact SQL 함수 SimpleSplit
이 있습니다. 예상대로테이블에 SQL 함수 적용 열 값
Processor
RAM
SSD
Ethernet
:이 결과
DECLARE @DelimitedString NVARCHAR(128)
SET @DelimitedString = 'Processor,RAM,SSD,Ethernet'
SELECT * FROM [dbo].[SimpleSplit](@DelimitedString, ',')
다음과 같이 나는 그것을 사용할 수 있습니다.
Descr
인 PROD_TABLE
이라는 표가 있습니다. 이 함수는 열 Descr
의 각 값에 적용하고 싶습니다. 나는 다음을 시도하고 그것은 작동하지 않습니다
SELECT p.[ID], p.[Descr]
FROM [Amazon].[dbo].[PROD_TABLE] p
OUTER APPLY [dbo].[SimpleSplit](p.Descr, '-') d
를 출력에 난 단지 즉 SimpleSplit
기능에서 어떤 결과보기 ID
과 Descr
열을 참조하십시오. 그러나, 나는
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
함수가 테이블을 반환합니다. 'SimpleSplit' 결과 테이블의 열 이름은 무엇입니까? select 문에 해당 열 이름을 포함하지 않아도됩니까? 'OUTER APPLY'가 적용되지만 결과가 선택되지 않습니다. –
와우 ** mr.Reband **. 빠른 답장을 보내 주셔서 감사합니다. 나는 당신이 대답으로 당신의 코멘트를 넣어줬으면 좋겠다. –