2011-02-08 4 views
0

나는 멋진 비주얼 스튜디오 2010 SQL 불만이 있습니다비주얼 스튜디오 2010 쿼리 디자이너 SQL 문제

내가 XML 경로 사용하여 단일 행에 여러 행에서 문자열을 연결하는 방법에 StackOverflow에 코드를 발견을 ('').

쿼리 및 뷰 디자이너에 다음 줄을 쓸 때 (Visual Studio에서 SQL을 작성한 다음 "보기"로 저장하는 다른 방법이 없기 때문에), 결과가 표시되지 않습니다. 원하는 :

코드 :

Code EmployeeNames 
---- ------------------------- 
1234 <Expr1>First Last</Expr1> 

이유 :

Names AS 
(SELECT DISTINCT 
    Z.code, 
    (SELECT DISTINCT CAST(B.fname + ' ' + B.lname + ' ' AS VARCHAR(MAX)) 
    FROM Records AS A LEFT OUTER JOIN Employees AS B ON A.id = B.id 
    WHERE (A.code = Z.code) FOR XML PATH('')) AS EmployeeNames 
FROM Employees AS Z) 

내가 같은 결과를 얻을? 때문에 비주얼 스튜디오 2010, 모든 IT의 영광에, 다음에 "EXPR1로"추가 :

(SELECT DISTINCT CAST(B.fname + ' ' + B.lname + ' ' AS VARCHAR(MAX)) 
FROM Records AS A LEFT OUTER JOIN Employees AS B ON A.id = B.id 
WHERE (A.code = Z.code) FOR XML PATH('')) *as Expr1* 

모든 작업이 주위에 거기에 이것에 대한? 나는이 문제가 Query and View Designer Parser와 함께 있다는 것을 알아 차렸고 파서가 지원하지 않는 임의의 함수 (예 : OVER())를 내 코드의 어딘가에 넣어 파서를 의도적으로 중단 할 수있다. 이렇게하면 문제가 해결되고 XML 태그가 제거되지만 불필요한 것으로 보입니다.

다른 사람이이 문제를 겪고 있습니까? 누구든지 해결 방법을 알고 있습니까?

문제를 해결해 주셔서 감사합니다.

답변

0

나는 simular 한 무엇인가를 만났다. 나를위한 수정은 각 경우에 캐스트를 정의하는 것이었다.

예 :

이름 AS (DISTINCT Z.code가 은 (DISTINCT CAST를 선택 SELECT (B.fname AS VARCHAR (10) + ','+ CAST (B.lname AS (')) AS EmployeeNames (예 : varchar (10) +' ') FROM 레코드가 왼쪽 외부 조인 인 경우 직원 ID가 Bid가 아닌 경우 A.id = B.id Where (A.code = Z.code) FOR XML PATH 직원부터 Z)

관련 문제