SQL Server 2008에서 스칼라 함수를 호출하는 방법
스칼라 함수를 만들었는데 성공적으로 만들었지만 select 문을 사용하여 함수를 호출하면 잘못된 개체 이름 'dbo'로 표시됩니다.fun_functional_score'입니다.
내 기능:
ALTER function [dbo].[fun_functional_score] (@phy_id varchar(20))
returns varchar(50)
as
begin
declare @level_initial int, @level_current int
-- initial functional score
set @level_initial=(SELECT pflag.fun_level
FROM tbl_phy_demographic_details as [phy]
inner join tbl_all_purple_flag_level as [pflag] on phy.Demographic_id=pflag.Id
WHERE phy.Physicion_id=@phy_id
and pflag.visited_count=(select MAX(visited_count)-1 from tbl_all_purple_flag_level ))
-- current functional score
set @level_current=(SELECT pflag.fun_level
FROM tbl_phy_demographic_details as [phy]
inner join tbl_all_purple_flag_level as [pflag] on phy.Demographic_id=pflag.Id
WHERE phy.Physicion_id=@phy_id
and pflag.visited_count=(select MAX(visited_count) from tbl_all_purple_flag_level ))
--to calculate functional score
declare @fun_level varchar(20),@result varchar(50)
set @fun_level=@level_current-@level_initial;
if @fun_level = 0 set @result='Maintained'
if @fun_level = '-1' set @result='Minor Improvement'
if @fun_level = '-2' set @result='Moderate Improvement'
if @fun_level = '-3' set @result='Significant Improvement'
if @fun_level = '-4' set @result='Substantial Improvement'
if @fun_level = '1' set @result='Minor Reduction'
if @fun_level = '2' set @result='Moderate Reduction'
if @fun_level = '3' set @result='Significant Reduction'
if @fun_level = '4' set @result='Substantial Reduction'
return @result
end
나는 이 선택을 전화하기 위해 사용했습니다.
select * from dbo.fun_functional_score('01091400003') as [er]
또는
select * from dbo.fun_functional_score('01091400003')
둘 다 "잘못된 개체 이름 'dbo' 오류를 표시합니다.fun_functional_score'."
제가 실수를 한 곳입니다. 누가 저를 도와주실 수 있나요?
구문은 결과 집합을 반환하는 테이블 값 함수에 대한 것이며 테이블처럼 쿼리할 수 있습니다.스칼라 함수의 경우에는 다음을 수행합니다.
select dbo.fun_functional_score('01091400003') as [er]
표 값 함수와 반대로 스칼라 값 함수가 있습니다.from 절은 테이블에 사용됩니다.열 목록에서 직접 값을 쿼리하기만 하면 됩니다.
select dbo.fun_functional_score('01091400003')
어떤 이유에서인지 다음과 같은 괄호를 사용하여 참조하기 전까지는 스칼라 함수를 사용할 수 없었습니다.
select [dbo].[fun_functional_score]('01091400003')
스칼라 함수 구문의 경우:
Select dbo.Function_Name(parameter_name)
Select dbo.Department_Employee_Count('HR')
당신은 당신의 스칼라 함수를 다음과 같이 부를 수 있습니다.
declare @value <type>;
exec @value= <dbo.fn_nameOfFunction> <param1>, <param2>;
print @value;
언급URL : https://stackoverflow.com/questions/21041345/how-to-call-scalar-function-in-sql-server-2008
'programing' 카테고리의 다른 글
선두에 있는 .../을(를) 사용하여 상위 디렉터리 위를 종료할 수 없습니다. (0) | 2023.08.25 |
---|---|
Maria에서 기본 저장 프로시저를 만들 수 없습니다.DB (0) | 2023.08.25 |
도커 이미지는 어떻게 제거합니까? (0) | 2023.08.25 |
도커에 nvm을 설치하는 방법은 무엇입니까? (0) | 2023.08.25 |
Node.js를 사용하여 텍스트 파일을 읽으시겠습니까? (0) | 2023.08.25 |