source

테이블 값 함수에서 변수 선언

manycodes 2023. 5. 6. 15:14
반응형

테이블 값 함수에서 변수 선언

테이블 값 함수에서 변수를 선언하려면 어떻게 해야 합니까?(내 제목처럼)

표 값 함수에는 두 가지 맛이 있습니다.하나는 선택 문일 뿐이고 하나는 선택 문보다 더 많은 행을 가질 수 있습니다.

변수를 사용할 수 없습니다.

create function Func() returns table
as
return
select 10 as ColName

대신 다음과 같이 해야 합니다.

create function Func()
returns @T table(ColName int)
as
begin
  declare @Var int
  set @Var = 10
  insert into @T(ColName) values (@Var)
  return
end

SQL Server에서:

이 솔루션은 그다지 좋은 솔루션은 아니지만 MSTVF 대신 인라인 TVF를 사용해야 하는 타당한 이유가 있고 변수를 매개 변수로 TVF에 전달할 수 없지만 SELECT 문을 사용하여 얻을 수 있는 경우 CTE를 사용하여 다음과 같이 값에 액세스할 수 있습니다.

CREATE FUNCTION func()
RETURNS TABLE
AS 
RETURN
(
-- Create a CTE table containing just the required value
WITH cte_myVar AS
   (SELECT <statement to select variable>) col1

-- Use the value by selecting it from the CTE table
SELECT * FROM table1 t1
WHERE t1.col1 = (SELECT col1 FROM cte_myVar)

)


언급URL : https://stackoverflow.com/questions/6661505/declare-variable-in-table-valued-function

반응형