簡體   English   中英

使用此格式選擇查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM