2009-07-13 3 views
0

나는여러개 쓰기 열은 SQL Server의 설정 2000

attribute  value 
---------  ---------- 
petid   1000 
name   buttercup 
species   cat 
age    10 
owner   Bob Dole 

은 기본적으로 내가 모든 행을 통해 이동하고 단일 문자열의 필드 이름과 종을 반환하려면 다음과 같은 형식의 데이터를 반환하는 쿼리를 , 결과는 다음과 같습니다

buttercup cat 

어떻게 생각하나요?

+0

당신이 할 수있는 평범한 구형 표준 SQL에서 이렇게하지 마십시오. 일반적으로 커서가있는 플랫폼에만 해당하는 커서를 사용해야합니다. SQL Server? 신탁? 접속하다? –

+0

나는 MSSQL 2000에 – Matt

+0

사실, 당신은 내 대답을 아래에 나와있는 것처럼 커서를 사용할 필요가 없습니다 ... http://stackoverflow.com/questions/1122596/iterating-through-a-result-set- in-SQL/1122621 # 1122621 –

답변

2

시도해보십시오. 나는 SQL 레르 족 2008 그것을 시도 만했지만, 어쩌면 그것은 작동합니다

DECLARE @Concat nvarchar(50) 
SET @Concat=N'' 

SELECT @Concat = @Concat + Value + N' ' 
FROM dbo.AttributeValue 
WHERE Attribute IN (N'name', N'species') 

SELECT @Concat 
1

좋아 - 지금은 여기에

가 (확실히 내가 바로 그것을 가지고 단지 만들기) 여기

CREATE TABLE MyTable 
(
attribute varchar(20), 
value varchar(20) 
) 

INSERT INTO MyTable VALUES('petid','1000') 
INSERT INTO MyTable VALUES('name','buttercup') 
INSERT INTO MyTable VALUES('species','cat') 
INSERT INTO MyTable VALUES('age','10') 
INSERT INTO MyTable VALUES('owner','Bob Dole') 

샘플 세트를 생성하는 코드입니다 ... 내가 데이터 형식을 이해 생각 내 대답은

SELECT a.value + ' ' +b.value 
FROM MyTable AS a 
INNER JOIN MyTable AS b ON a.attribute='name' AND b.attribute = 'species' 
0

이 일의 커서 방법은 this-

DECLARE @name varchar(20) 
DECLARE @species varchar(20)  
DECLARE nameSpeciesCursor CURSOR FOR 
SELECT name, species FROM tableName 

OPEN nameSpeciesCursor 
FETCH NEXT FROM nameSpeciesCursor INTO @name, @species 

WHILE @@FETCH_STATUS = 0 
BEGIN 
     PRINT @name + ' ' + @species  
     FETCH NEXT FROM nameSpeciesCursor INTO @name, @species 
END 

CLOSE nameSpeciesCursor 
DEALLOCATE nameSpeciesCursor 

환호 같은 몇 가지 일이 될 것입니다