다른 테이블의 값을 기반으로 값을 선택하는 SELECT 쿼리

ckv

테이블이 2 개 있어요

  • Account(AccountId, Encoding)
  • DeviceAccountMap(AccountId, DeviceId)

이제 DeviceAccountMap. 목록을 AccountId저장 프로 시저에 전달 DeviceId하고 DeviceAccountMap테이블 에서을 가져 오는 동안 Encoding각 계정 값을 특정 값과 비교해야 합니다.

이 작업을 수행하는 가장 쉬운 방법은 무엇입니까? 나는 완전히 길을 잃었다.

저장 프로 시저의 선택 절은 다음과 같습니다.

DECLARE @Accounts [usp].[Array]

다음과 [usp].[Array]같이 정의됩니다.

CREATE TYPE [usp].[Array] AS TABLE
(
    Value VARCHAR(36)   NULL
)

SELECT 
   DeviceId,
   AccountEncoding = A.Encoding
FROM 
   usp.DeviceControllerAccountMap DCAM
INNER JOIN 
   usp.Account A ON (DCAM.AccountId = A.AccountId)
WHERE 
   DCAM.AccountId IN (SELECT Value From @AccountIds) 
   AND DCAM.IsShared = 1 
   AND AccountEncoding LIKE A.Encoding + '.%'

즉, 각 계정에 대한 인코딩 값을 가져 와서이 where 절에서 사용해야합니다.

윌 뉴턴

따라서 T-SQL에서 TVP (Table-Valued Parameters)에 대한 정보를 조회 할 수 있습니다.

Erland Sommarskog의 기사입니다.

이 StackOverflow 답변 을 참조하여 TVP를 사용하는 저장 프로 시저를 호출하는 C # 코드의 예를 볼 수 있습니다 . TVP에는 SQL Server 2008 이상이 필요하다고 생각합니다.

내가 이해하는 한 TVP는 SQL 서버에서 자신의 데이터 형식을 만드는 방법을 제공하여 마치 테이블처럼 취급됩니다. Array형식 을 선언 한 다음 @AccountIds저장 프로 시저의 select 문에서 를 사용할 때이 작업을 수행합니다.

CREATE TYPE [usp].[Array] AS TABLE    -- maybe choose a more descriptive name than 'Array'
(
    Value VARCHAR(36) NULL            -- choose a more descriptive name than 'Value'
)

CREATE PROCEDURE [usp].[your_procedure_name]
    @AccountIds [usp].[Array] READONLY       -- use TVP as a parameter
AS
SELECT  …

.NET Framework에 대한 저장 프로 시저에 매개 변수를 포함할지 여부는 질문 세부 정보에서 명확하지 않습니다 Encoding. 인코딩이 마침표 '.'로 시작하는 계정을 찾고있는 것 같습니다.

그러니 먼저 당신이하는 것처럼 당신의 타입을 만드세요. 그런 다음 저장 프로 시저를 만듭니다. 그런 다음 다음과 같이 저장 프로 시저를 테스트합니다.

DECLARE @mylist Array                           -- make TVP sample data 
INSERT @mylist(Value) VALUES(1),(11),(27),(123) -- insert some values
exec your_procedure_name @mylist                -- run stored procedure

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 테이블의 열 값을 기반으로 한 테이블에서 선택하는 SQL 쿼리

분류에서Dev

다른 테이블 열의 값을 기반으로하는 쿼리 테이블

분류에서Dev

다른 테이블의 값을 기반으로하는 SQL 쿼리

분류에서Dev

두 개의 다른 테이블의 값을 기반으로 하나의 테이블을 선택하는 MySQL 쿼리.

분류에서Dev

열 값을 기준으로 3 가지 옵션 및 다른 테이블에서 선택하는 SQL 쿼리

분류에서Dev

선택한 다른 테이블을 기반으로 테이블의 열에 값을 삽입하는 방법

분류에서Dev

다른 테이블의 합계 값으로 쿼리 선택

분류에서Dev

SQLITE : 다른 테이블의 다른 열을 기반으로 열 값을 선택하는 방법

분류에서Dev

선택 값을 다른 테이블의 값으로 바꾸기

분류에서Dev

SQL SELECT를 사용하여 다른 테이블의 특정 행을 기반으로 테이블을 쿼리하는 방법

분류에서Dev

파워 쿼리에서 다른 테이블의 값을 기반으로 테이블의 행을 필터링하는 방법

분류에서Dev

여러 테이블을 기반으로하는 SELECT 쿼리

분류에서Dev

SQL : 다른 테이블의 값으로 테이블을 쿼리하는 방법은 무엇입니까?

분류에서Dev

SQL : 다른 테이블의 값을 기반으로 한 테이블에 레코드가 있는지 여부를 쿼리하는 방법

분류에서Dev

SQL : 다른 테이블의 값을 기반으로 한 테이블에 레코드가 있는지 여부를 쿼리하는 방법

분류에서Dev

동일한 테이블의 다른 열 값을 기반으로 테이블에서 날짜를 추출하는 SQL 쿼리?

분류에서Dev

다른 테이블의 값을 기반으로 테이블에서 SQL 쿼리를 수행하는 방법은 무엇입니까?

분류에서Dev

FK 값을 기반으로하는 쿼리 테이블

분류에서Dev

첫 번째 선택 쿼리 결과를 기반으로 두 개의 다른 선택 쿼리 결과 (Oracle)에서 하나의 값을 선택합니다.

분류에서Dev

테이블의 고유 값을 기반으로 열을 사용하여 쿼리

분류에서Dev

테이블의 다른 조건을 기반으로 레코드 쿼리 (레코드 선택)

분류에서Dev

다른 테이블의 값을 기반으로 백분율을 계산하는 SQL 쿼리를 작성하는 방법은 무엇입니까?

분류에서Dev

동일한 선택 쿼리의 다른 값을 기반으로 통합 된 값을 선택 하시겠습니까?

분류에서Dev

한 테이블 열 값을 다른 테이블 값으로 업데이트하는 SQL Server 쿼리

분류에서Dev

이전 쿼리를 기반으로 테이블에서 임의의 행을 선택하는 SQL 쿼리

분류에서Dev

다른 테이블의 select 문을 기반으로하는 where 절

분류에서Dev

값을 기반으로 이전 레코드를 선택하는 SQL 쿼리

분류에서Dev

다른 열과 고객 ID의 최소값을 기준으로 값을 반환하는 쿼리?

분류에서Dev

MySQL 쿼리-다른 테이블의 열 이름을 기반으로 행 값 가져 오기

Related 관련 기사

  1. 1

    다른 테이블의 열 값을 기반으로 한 테이블에서 선택하는 SQL 쿼리

  2. 2

    다른 테이블 열의 값을 기반으로하는 쿼리 테이블

  3. 3

    다른 테이블의 값을 기반으로하는 SQL 쿼리

  4. 4

    두 개의 다른 테이블의 값을 기반으로 하나의 테이블을 선택하는 MySQL 쿼리.

  5. 5

    열 값을 기준으로 3 가지 옵션 및 다른 테이블에서 선택하는 SQL 쿼리

  6. 6

    선택한 다른 테이블을 기반으로 테이블의 열에 값을 삽입하는 방법

  7. 7

    다른 테이블의 합계 값으로 쿼리 선택

  8. 8

    SQLITE : 다른 테이블의 다른 열을 기반으로 열 값을 선택하는 방법

  9. 9

    선택 값을 다른 테이블의 값으로 바꾸기

  10. 10

    SQL SELECT를 사용하여 다른 테이블의 특정 행을 기반으로 테이블을 쿼리하는 방법

  11. 11

    파워 쿼리에서 다른 테이블의 값을 기반으로 테이블의 행을 필터링하는 방법

  12. 12

    여러 테이블을 기반으로하는 SELECT 쿼리

  13. 13

    SQL : 다른 테이블의 값으로 테이블을 쿼리하는 방법은 무엇입니까?

  14. 14

    SQL : 다른 테이블의 값을 기반으로 한 테이블에 레코드가 있는지 여부를 쿼리하는 방법

  15. 15

    SQL : 다른 테이블의 값을 기반으로 한 테이블에 레코드가 있는지 여부를 쿼리하는 방법

  16. 16

    동일한 테이블의 다른 열 값을 기반으로 테이블에서 날짜를 추출하는 SQL 쿼리?

  17. 17

    다른 테이블의 값을 기반으로 테이블에서 SQL 쿼리를 수행하는 방법은 무엇입니까?

  18. 18

    FK 값을 기반으로하는 쿼리 테이블

  19. 19

    첫 번째 선택 쿼리 결과를 기반으로 두 개의 다른 선택 쿼리 결과 (Oracle)에서 하나의 값을 선택합니다.

  20. 20

    테이블의 고유 값을 기반으로 열을 사용하여 쿼리

  21. 21

    테이블의 다른 조건을 기반으로 레코드 쿼리 (레코드 선택)

  22. 22

    다른 테이블의 값을 기반으로 백분율을 계산하는 SQL 쿼리를 작성하는 방법은 무엇입니까?

  23. 23

    동일한 선택 쿼리의 다른 값을 기반으로 통합 된 값을 선택 하시겠습니까?

  24. 24

    한 테이블 열 값을 다른 테이블 값으로 업데이트하는 SQL Server 쿼리

  25. 25

    이전 쿼리를 기반으로 테이블에서 임의의 행을 선택하는 SQL 쿼리

  26. 26

    다른 테이블의 select 문을 기반으로하는 where 절

  27. 27

    값을 기반으로 이전 레코드를 선택하는 SQL 쿼리

  28. 28

    다른 열과 고객 ID의 최소값을 기준으로 값을 반환하는 쿼리?

  29. 29

    MySQL 쿼리-다른 테이블의 열 이름을 기반으로 행 값 가져 오기

뜨겁다태그

보관