>source

상황 :

TVF 가있다  하나의 매개 변수 DATE . 사용자가 추가 매개 변수로 문자열 목록을 입력하도록 허용하고 싶습니다. 사용자 유형에 익숙하지만 사용하고 싶지 않습니다.

기능 : dbo.fnExample(@StartDate)

내 두 가지 옵션은 다음과 같습니다. 옵션 1

SELECT base.*
FROM (SELECT * FROM dbo.fnExample('2019-05-01')) AS base
INNER JOIN ( VALUES
('something'),
('something2'),
('n'),
(...)) AS base2(ColumnA)
ON base.ColumnA=base2.ColumnA

옵션 2( cross apply 를 사용하여 해당 열에서 조인하는 방법을 모르기 때문에 작동하지 않습니다. ).

SELECT *
FROM ( VALUES
('something'),
('something2'),
('n'),
(...)) AS base2(ColumnA)
CROSS APPLY dbo.fnExample('2019-05-01')

목표 :

제 질문은 세 가지입니다. 어느 쪽이 더 나은 성능을 보입니까? 위에 언급되지 않은 더 나은 다른 옵션이 있습니까? 제안 된 옵션의 제한 사항은 무엇입니까? 도와 주셔서 감사합니다!

  • 이전 regex - 파이썬은 요청의 POST 응답으로 작동하지 않습니다
  • 다음 apache - 리디렉션 규칙을 따르지 않음