0

예를 들어 아래에서 작성한 f() 함수를 작성할 수 있습니다. (즉, @tbl 내 기능 'f는'사용자 정의 테이블 형식의 매개 변수를 요구하는 것이 내가 이전에 열 VAR1과 변수 2를 대입 할 때 변수로 생성 한 사용자 정의 메모리 테이블이며, 참고.)select 문에서 호출 할 수있는 열을 반환하는 SQL 함수를 작성하는 방법이 있습니까?

SELECT t1.Var1, t1.Var2, f(@tbl) OVER (PARTITION BY t1.Var1) 
From @tbl as t1 

사용자 정의 함수가 테이블 값이나 스칼라 값을 반환하는 것처럼 보입니다. 주어진 열에 대해 그룹별로 함수를 적용하기 때문에 열을 반환 할 수 있어야합니다.

+0

어떤 RDBMS로 작업하고 있습니까? MySQL은? 신탁? SQL Server? 그것은 SQL Server일지도 모르지만 확신하고 싶습니다. –

+0

SQL Server라고 가정하면 CROSS APPLY가 사용자가 찾고있는 것을 제공 할 가능성이 큽니다. –

+0

당신이 그 칼럼을 선택하기를 원하는 기준으로, 그 후에 무엇을, 왜? – KumarHarsh

답변

0

스칼라 반환 함수는 스칼라 함수와 함께 당신에게 열

0

을 줄 것이다

예 :

1 함수를 작성

CREATE FUNCTION [dbo].[duplicate] (@number int) 
returns double 
as 
begin 
declare @duplicate double 
set @duplicate = @number * 2 
return @duplicate 
end 

/****/

이 사용

우리는 테이블처럼 "번호"가 기능 :

ID를 | val

1 | 2

2 | 5

3 | 3

다음

select id, duplicate(val) as dup 
from numbers 

결과 :

ID | dup

1 | 4

2 | 10

3 | 6