[英]select query using this format
我有這種格式的數據
NAME1 AMOUNT1 Internal
NAME1 AMOUNT1 External
NAME2 AMOUNT2 Internal
NAME2 AMOUNT2 External
但是現在我需要使用SQL Server以以下格式提取數據
NAME1 AMOUNT1 Internal
External
NAME2 AMOUNT2 Internal
External
請提出建議。
您可以通過以下方式使用ROW_NUMBER()和CASE來實現它:
樣本數據:
CREATE TABLE #t
(
Name NVARCHAR(40),
Amount NVARCHAR(40),
Types NVARCHAR(40)
)
INSERT INTO #t VALUES
('NAME1', 'AMOUNT1', 'Internal'),
('NAME1', 'AMOUNT1', 'External'),
('NAME2', 'AMOUNT2', 'Internal'),
('NAME2', 'AMOUNT2', 'External')
QUERY
SELECT CASE WHEN rn > 1 THEN '' ELSE Name END AS Name,
CASE WHEN rn > 1 THEN '' ELSE Amount END AS Amount,
Types
FROM(
SELECT Name,
Amount,
Types,
ROW_NUMBER() OVER (PARTITION BY Name, Amount ORDER BY Name) rn
FROM #t
) x
OUTPUT
Name Amount Types
NAME1 AMOUNT1 Internal
External
NAME2 AMOUNT2 Internal
External
DEMO
您可以對其進行測試: SQL FIDDLE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.