は、私はこの1つ列を行に変換する方法は?
RowNum | TranNo | nTotalSales | nBalance
1 | 1 | 800 | 0
のようなテーブルがあると私はこの方法
RowNum | 1
cTranNo | 1
nTotalSales | 800
nBalance | 0
私はこれをどのように操作を行うことができ、それを表示するようにしたいですか?
は、私はこの1つ列を行に変換する方法は?
RowNum | TranNo | nTotalSales | nBalance
1 | 1 | 800 | 0
のようなテーブルがあると私はこの方法
RowNum | 1
cTranNo | 1
nTotalSales | 800
nBalance | 0
私はこれをどのように操作を行うことができ、それを表示するようにしたいですか?
は、完全な実施例である。このようになります
あなたが望むようにキャストしてください。私の例では、すべてVARCHAR(20)にキャストしました。
DECLARE @bob TABLE
(
RowNum INT,
TranNo INT,
nTotalSales INT,
nBalance INT
);
INSERT INTO @bob(RowNum, TranNo, nTotalSales, nBalance)
VALUES(1, 1, 800, 0);
WITH T AS (
SELECT CAST(RowNum AS VARCHAR(20)) AS RowNum,
CAST(TranNo AS VARCHAR(20)) AS TranNo,
CAST(nTotalSales AS VARCHAR(20)) AS nTotalSales,
CAST(nBalance AS VARCHAR(20)) AS nBalance
FROM @bob
)
SELECT attribute, value
FROM T
UNPIVOT(value FOR attribute IN(RowNum, TranNo, nTotalSales, nBalance)) AS U;
面白い答えですが、私はこの問題を解決するときにエラーが発生します: "WITH T AS(RowNum、cTranNo、nTotalSales、nBalanceをtran_ar_siから選択)" – illumi
"タイプ" cTranNo " UNPIVOTリストに指定されている他の列のうちの1つです。 - エラーメッセージです。 – illumi
@dave、 - UNPIVOTはあなたが求めているものです、私の友人。 'WITH T AS(...')文を使用する必要はありません。これは単なる動作例です。私の例全体を単独で実行するとうまくいくでしょう。 'あなたのソーステーブルとして(...')あなたがそれ以上の明確化を必要としているかどうかを教えてください。 –
SELECT 'RowNum' TITLE, RowNum AS [VALUE]
FROM TABLE
UNION ALL
SELECT 'TranNo', TranNo
FROM TABLE
UNION ALL
SELECT 'nTotalSales', nTotalSales
FROM TABLE
UNION ALL
SELECT 'nBalance', nBalance
FROM TABLE
それは本当の楽しみではないのですが、ここでは一つの解決策だ:
SELECT 'RowNum', RowNum FROM tbl
UNION
SELECT 'cTranNo', TranNo FROM tbl
UNION
SELECT 'nTotalSales', nTotalSales FROM tbl
UNION
SELECT 'nBalance', nBalance FROM tbl
行に列をオンにします。列の各行がインターレースされるようにするには、ソートと一緒にレコード番号を導入する必要があります。あなたは、あなたの「値」型が同じであるように、あなたが求めているものですUNPIVOT
、必要ないときここ
SELECT 'RowNum' AS ColName, RowNum AS [Value], RowNum FROM tbl
UNION
SELECT 'cTranNo' AS ColName, TranNo, RowNum FROM tbl
UNION
SELECT 'nTotalSales' AS ColName, nTotalSales, RowNum FROM tbl
UNION
SELECT 'nBalance' AS ColName, nBalance, RowNum FROM tbl
ORDER BY RowNum, ColName
答えに感謝します。しかし、どうすればその動的なことができますか? – illumi
これは「ピボット」と正しくタグ付けされています。なぜそれらの質問を見ていないのですか? –
これらの質問に記載されている例に混乱するので、「ピボットの例」https://www.google.com/search?q=pivot+examples – JSuar
を検索するだけです。私は自分自身を作りたいと思っていました。私を助けてください。 – illumi