2010-04-28 4 views
0
를 사용

내가 시간 동안 내 머리를 두드리는 것, 그것은 간다 여기 간단한데,하지만 :SQL 서버보기 여러 SELECT 문

내가 단일 레코드를 출력 여러 SELECT 문을 사용하여 뷰를 생성하고 싶습니다 예를으로 해주십시오 :

Column_1 | Column_2 
'First' 'Second' 

어떤 도움을 크게 감상 할 수있다 :

CREATE VIEW dbo.TestDB 
AS 
SELECT  X AS 'First' 
FROM  The_Table 
WHERE  The_Value = 'y' 

SELECT  X AS 'Second' 
FROM  The_Table 
WHERE  The_Value = 'z' 

내가 출력에 다음 레코드를 원했다! - 감사합니다.

+0

당신은 어떻게 관련되어 'Y'의 값을 기록하는 알고에 'Z'의 값을 기록하는? 그것들이 같은 선이된다면, 우리는 그것들 사이의 현실성을 결정하는 방법을 알아야합니다. – HLGEM

답변

1

유니언이 원하는 것일 수 있지만 정확히 동일한 열을 가져야 각 선택에 null 열을 추가해야합니다.

SELECT  X AS 'First', Null as 'Second' 
FROM  The_Table 
WHERE  The_Value = 'y' 
Union 
SELECT  null as 'First', X AS 'Second' 
FROM  The_Table 
WHERE  The_Value = 'z' 

이렇게하면 두 가지 결과가 결합되어 고유 한 조합 만 제공됩니다. 내 생각 엔이게 네가 찾고 있는게 아니야.

하나의 쿼리에서이 작업을 수행하거나 하위 쿼리를 수행 할 수없는 이유가 있을까요? 좀 더 구체적인 예를 제공 할 수 있습니다.

2

당신이 원하는 경우이 : 당신이 다른 답변에서 제안처럼 UNION을 사용할 수 있지만,

Column_1 | Column_2 
'First' null 
null  'Second' 

당신은 정말 당신의 질문처럼 같은 행에 다음 원하는 경우 :

Column_1 | Column_2 
'First' 'Second' 

다음과 같이 시도하십시오 :

나는 테이블에 참여하는 방법을 모르겠다. PKs에 관한 정보 또는 그것들에 합류하는 방법이 주어집니다.

0

안된

CREATE VIEW dbo.TestDB 
AS 
SELECT  CASE The_Value when 'y' then x else NULL END AS 'First', 
      CASE The_Value when 'z' then x else NULL END AS 'Second' 
FROM  The_Table 
WHERE  The_Value in('y','z')