sql >> Databáze >  >> RDS >> Sqlserver

SQL Server dotaz pro skrytí duplicitních dat sloupců řádků. Nechcete odstraňovat duplicitní řádek

Vypadá to jako bláznivé řešení, ale můžete toho dosáhnout pomocí funkce v okně ROW_NUMBER() a pomocí CASE výraz zkontrolujte, zda je číslo řádku vyšší než 1, něco jako:

select 
    [Vch No.],
    [Vch Type],
    case when rn > 1 then '' else [Vch Ref] end as [Vch Ref],
    case when rn > 1 then '' else [Date] end as [Date],
    case when rn > 1 then '' else [Party Name] end as [Party Name],
    case when rn > 1 then '' else [Sales Ledger] end as [Sales Ledger],
    case when rn > 1 then '' else [Amt] end as [Amt],
    [GST Ledger],
    [TaxAmount],
    case when rn > 1 then '' else [Total] end as [Total]
from (  
    select 
        [Vch No.],
        [Vch Type],
        [Vch Ref],
        [Date],
        [Party Name],
        [Sales Ledger],
        [Amt],
        [GST Ledger],
        [TaxAmount],
        [Total], 
        row_number() over (partition by [Vch No.],[Vch Type],[Vch Ref],[Date],[Party Name],[Sales Ledger],[Amt],[GST Ledger],[TaxAmount],[Total] order by [Vch No.]) rn
    from [AccountData]
)x

Podívejte se na datové typy, pokud existuje Amt je INT, měli byste jej převést na řetězec, pokud chcete získat prázdnou hodnotu.




  1. Vyladění MySQL pro rychlé vytváření sloupců/indexů během vývoje

  2. Parametry CDbCriteria s třídami regex znaků

  3. Jak získat záznamy z posledních 24 hodin v MySQL

  4. Oracle 10g PL/SQL- Výběr výsledků jako hodnot sloupců aktualizace