行番号データを第1列に、奇数行番号を第2列に追加するには、ヘルプが必要です。あなたが参照している場合、SQL Server 2008/SQLサーバー2008 R2 ...偶数行番号データを第1列に、奇数行番号データを第2列にどのように追加するか?
例
id Data
1 TK104
2 ABC
3 TK106
4 XYZ
を使用してLIKE
NAME VALUE
TK104 ABC
TK106 XYZ
行番号データを第1列に、奇数行番号を第2列に追加するには、ヘルプが必要です。あなたが参照している場合、SQL Server 2008/SQLサーバー2008 R2 ...偶数行番号データを第1列に、奇数行番号データを第2列にどのように追加するか?
例
id Data
1 TK104
2 ABC
3 TK106
4 XYZ
を使用してLIKE
NAME VALUE
TK104 ABC
TK106 XYZ
私は全くわからないんだけどOUTPUTを探してテンポラリテーブルに移動しますが、これが意味する場合:
CREATE TABLE #ReturnData (Column1 VARCHAR(50), Column2 VARCHAR(50))
INSERT INTO #ReturnData (Column1, Column2) (
SELECT
CASE WHEN MyTable.ID % 2 = 0 THEN CONVERT(VARCHAR, whateverdata) ELSE '' END,
CASE WHEN MyTable.ID % 2 > 0 THEN CONVERT(VARCHAR, whateverdata) ELSE '' END
FROM MyTable
)
SELECT * FROM #ReturnData
DROP TABLE #ReturnData
これは、最初の列でも、2番目の奇数にもなります。私たちデシベルのの1のテーブルからの例:あなたはどこのid =私のid =私は1 +レコードを持つレコードを参加したいようなあなたの例に基づいて
(106 rows affected)
Column1 Column2
-------------------------------------------------- ------------------------
652
653
654
655
、それが見えます。もしそうなら、あなたはその基準に表を自己結合する必要があります
SELECT A.Data NAME, B.Data VALUE
FROM Example A FULL JOIN Example B -- Self-join. Using a FULL join in case of gaps
ON A.id + 1 = B.id
AND B.id % 2 = 1 --Make sure that Value is odd
AND A.id % 2 = 0 --Name is even
あなたid
は「ギャップ」の使用row_number()
と条件付き集約
select
max(case when rn % 2 = 0 then data end) as name,
max(case when rn % 2 = 1 then data end) as value
from
(
select *,
row_number() over (order by id) as rn
from your_table
)
group by rn/2
隙間なく、行の必ず偶数を含めることはできませんか?自己参加する。 – jarlh