attribute value
--------- ----------
petid 1000
name buttercup
species cat
age 10
owner Bob Dole
は基本的に私はすべての行を通過し、単一の文字列内のフィールド名と種を返すようにしたい、次の形式でデータを返すクエリを持っていますですので、結果は
buttercup cat
どのように私はこれを行うことができますか?
attribute value
--------- ----------
petid 1000
name buttercup
species cat
age 10
owner Bob Dole
は基本的に私はすべての行を通過し、単一の文字列内のフィールド名と種を返すようにしたい、次の形式でデータを返すクエリを持っていますですので、結果は
buttercup cat
どのように私はこれを行うことができますか?
これを試してください。私だけSQL Serer 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
わかりました - 今、私はデータの形式を理解だと思う...ここ
は、ここでサンプルセット(ちょうど私が右のそれを持っていることを確認する)
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')
を作成するためのコードです私の答えは:
これを行うためのカーソルの方法は、あなたがすることができ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
歓声
のようないくつかのことだろう普通の古い標準SQLでこれをしないでください。一般的には、使用しているプラットフォーム固有のカーソルを使用する必要があります。 SQLサーバー?オラクル?アクセス? –
私はMSSQL 2000にいる – Matt
実際には、私の答えで示されているようにカーソルを使用する必要はありません... http://stackoverflow.com/questions/1122596/iterating-through-a-result-set- in-SQL/1122621#1122621 –