1 개의 결과 만 표시하는 테이블 반환 함수

알렉산더 흐리스토프

이 테이블 값 함수가 있으며 동일한 "PeopleID"를 가진 모든 레코드를 표시하고 싶습니다. 내가 어떻게 해? 현재 가능한 결과 중 하나만 표시되고 있습니다.

ALTER FUNCTION dbo.ufnGetContactInformation(@FuncID int)
RETURNS @retContactInformation TABLE 
(
    -- Columns returned by the function
    FuncID int PRIMARY KEY NOT NULL, 
    Full_Name nvarchar(75) NULL, 
    Phone nvarchar(100) NULL, 
    Email nvarchar(50) NULL, 
    City nvarchar(20) NULL
)
AS 
BEGIN
    DECLARE
        @fullname nvarchar(75),
        @phonenumber nvarchar(100),
        @email nvarchar(50),
        @city nvarchar(20);

    -- > Get common contact information
    SELECT
            @fullname = p.Full_Name,
            @phonenumber = c.Phone, 
            @email = c.Email,
            @city = c.CityID
            FROM d_People p, d_Contacts c
            WHERE p.PeopleID=@FuncID;
    -- < Get common contact information
    IF @FuncID IS NOT NULL 
    BEGIN
        INSERT @retContactInformation
        SELECT @FuncID, @fullname, @phonenumber, @email, @city;
    END;
    RETURN;
END;
GO
SqlZim

join두 테이블에 적절한 것이 필요합니다 . 그렇지 않으면 쿼리가 의미가 없습니다. 당신이 지금 가지고있는 것은 당신에게 한 사람 줄 것이다 full_name, 그러나 모든 접촉 phone, email등을 city.

걷어차는 나쁜 습관 : 구식 JOIN 사용-Aaron Bertrand


스칼라 변수를 선택하면 각 변수에서 하나의 결과 만 얻습니다. 한 행만 유지하도록 설정 한 후 변수를 삽입하면 최대 한 행만 생성됩니다.

다음과 같이 인라인 테이블 반환 함수로 함수를 단순화 할 수 있습니다.

alter function dbo.ufngetcontactinformation(@funcid int)
returns table as return (
  select 
     funcid = p.peopleid
   , fullname = p.full_name
   , phonenumber = c.phone
   , email = c.email
   , city = c.cityid
  from d_people p, d_contacts c
  where p.peopleid = @funcid;
);
go

참고


성능 저하에도 불구하고 다중 문 테이블 값 함수가 있어야하는 경우 :

alter function dbo.ufngetcontactinformation(@funcid int)
returns @retcontactinformation table 
(
    -- columns returned by the function
    funcid int primary key not null, 
    full_name nvarchar(75) null, 
    phone nvarchar(100) null, 
    email nvarchar(50) null, 
    city nvarchar(20) null
)
as 
begin
  insert @retcontactinformation
select 
    @funcid
  , p.full_name
  , c.phone
  , c.email
  , c.cityid
from d_people p, d_contacts c
where p.peopleid = @funcid;
return;
end;
go

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

두 개의 조인이있는 첫 번째 테이블의 결과 만 반환

분류에서Dev

MySQL SELECT는 3 개 테이블의 여러 결과 대신 1 개의 결과 만 표시합니다.

분류에서Dev

Postgres의 함수에서 테이블과 총 개수를 반환하는 방법

분류에서Dev

SQL 테이블에서 1 개의 결과 만 가져옵니다 (null 또는 날짜 포함).

분류에서Dev

함수는 하나의 배열 결과 만 반환합니다.

분류에서Dev

적절한 정렬과 함께 1 개의 행과 다른 열 수로 테이블을 만드는 방법

분류에서Dev

FindById는 1 개만있는 경우 2 개의 결과를 반환합니다.

분류에서Dev

Laravel Backpack 테이블에 1 개의 결과 만 표시하는 대신 정확한 일치로 바운스하는 방법

분류에서Dev

매개 변수 테이블을 반복하고 쿼리 결과의 통합을 반환합니다.

분류에서Dev

테이블에 값이 없지만 쿼리 결과 수가 1을 반환합니다.

분류에서Dev

PDO-모두 동일한 ID가 아닌 테이블에 1 개의 결과 만 표시합니다.

분류에서Dev

mySQL에서 1 개의 결과가 NULL 일 수있는 두 테이블 확인

분류에서Dev

필터 함수 ng-repeat가 true를 반환하지만 결과가 0 개 표시됨

분류에서Dev

SQL 선언 쿼리는 1 개의 행 결과 만 반환합니다.

분류에서Dev

do_compare의 결과는 1이지만 .compare 반환 값은 0입니다.

분류에서Dev

하나의 인수를 취하고 1과 인수 사이에 홀수를 더한 결과를 반환하는 함수를 만드는 데 문제가 있습니까?

분류에서Dev

JSON 요청에서 올바른 데이터를 받지만 함수에서 결과를 반환하려면 "정의되지 않음"이 표시됩니다.

분류에서Dev

Python Pandas-groupby 함수의 결과를 부모 테이블로 반환

분류에서Dev

일치하는 항목의 결과 만 수집하려면 2 개의 테이블에서 가져옵니다.

분류에서Dev

목록 항목을 반환하는 레이블에 함수의 결과를 표시하는 방법은 무엇입니까?

분류에서Dev

함수의 결과를 오프셋이있는 셀로 반환

분류에서Dev

Elasticseach Multisearch는 1 세트의 결과 만 반환합니다.

분류에서Dev

JPA 기준을 사용하여 3 개의 테이블에서 결과 반환

분류에서Dev

table2에서 일치하지 않는 테이블 1의 값과 함께 두 SQL 테이블의 최상의 값을 반환합니다.

분류에서Dev

쿼리가 1 개의 결과 만 반환하는 경우 쿼리를 실행하고 선택한 값을 반환하는 저장 프로 시저

분류에서Dev

WHERE IN과 함께 위치 자리 표시자를 사용하면 하나의 결과 만 반환됩니다.

분류에서Dev

클라이언트 측 함수 \ crosstabview의 결과에서 테이블을 만드는 방법

분류에서Dev

함수의 문이 원하는 결과를 반환하지 않는 경우

분류에서Dev

5 개의 결과 만 반환하는 Google Places API

Related 관련 기사

  1. 1

    두 개의 조인이있는 첫 번째 테이블의 결과 만 반환

  2. 2

    MySQL SELECT는 3 개 테이블의 여러 결과 대신 1 개의 결과 만 표시합니다.

  3. 3

    Postgres의 함수에서 테이블과 총 개수를 반환하는 방법

  4. 4

    SQL 테이블에서 1 개의 결과 만 가져옵니다 (null 또는 날짜 포함).

  5. 5

    함수는 하나의 배열 결과 만 반환합니다.

  6. 6

    적절한 정렬과 함께 1 개의 행과 다른 열 수로 테이블을 만드는 방법

  7. 7

    FindById는 1 개만있는 경우 2 개의 결과를 반환합니다.

  8. 8

    Laravel Backpack 테이블에 1 개의 결과 만 표시하는 대신 정확한 일치로 바운스하는 방법

  9. 9

    매개 변수 테이블을 반복하고 쿼리 결과의 통합을 반환합니다.

  10. 10

    테이블에 값이 없지만 쿼리 결과 수가 1을 반환합니다.

  11. 11

    PDO-모두 동일한 ID가 아닌 테이블에 1 개의 결과 만 표시합니다.

  12. 12

    mySQL에서 1 개의 결과가 NULL 일 수있는 두 테이블 확인

  13. 13

    필터 함수 ng-repeat가 true를 반환하지만 결과가 0 개 표시됨

  14. 14

    SQL 선언 쿼리는 1 개의 행 결과 만 반환합니다.

  15. 15

    do_compare의 결과는 1이지만 .compare 반환 값은 0입니다.

  16. 16

    하나의 인수를 취하고 1과 인수 사이에 홀수를 더한 결과를 반환하는 함수를 만드는 데 문제가 있습니까?

  17. 17

    JSON 요청에서 올바른 데이터를 받지만 함수에서 결과를 반환하려면 "정의되지 않음"이 표시됩니다.

  18. 18

    Python Pandas-groupby 함수의 결과를 부모 테이블로 반환

  19. 19

    일치하는 항목의 결과 만 수집하려면 2 개의 테이블에서 가져옵니다.

  20. 20

    목록 항목을 반환하는 레이블에 함수의 결과를 표시하는 방법은 무엇입니까?

  21. 21

    함수의 결과를 오프셋이있는 셀로 반환

  22. 22

    Elasticseach Multisearch는 1 세트의 결과 만 반환합니다.

  23. 23

    JPA 기준을 사용하여 3 개의 테이블에서 결과 반환

  24. 24

    table2에서 일치하지 않는 테이블 1의 값과 함께 두 SQL 테이블의 최상의 값을 반환합니다.

  25. 25

    쿼리가 1 개의 결과 만 반환하는 경우 쿼리를 실행하고 선택한 값을 반환하는 저장 프로 시저

  26. 26

    WHERE IN과 함께 위치 자리 표시자를 사용하면 하나의 결과 만 반환됩니다.

  27. 27

    클라이언트 측 함수 \ crosstabview의 결과에서 테이블을 만드는 방법

  28. 28

    함수의 문이 원하는 결과를 반환하지 않는 경우

  29. 29

    5 개의 결과 만 반환하는 Google Places API

뜨겁다태그

보관