Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заявка на SQL Server за скриване на дублиращи се редове данни за колони. Не искам да премахвам дублиран ред

Това изглежда като лудо решение, но можете да го постигнете с помощта на прозоречна функция ROW_NUMBER() и използвайки CASE проверка на израза дали номерът на ред е по-голям от 1, нещо като:

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

Вижте типовете данни, ако има Amt е INT, трябва да го преобразувате в низ, ако искате да получите празна стойност.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете нова ODBC връзка към един отдалечен SQL Server

  2. Получавате грешка при изпълнение на динамичен sql в рамките на функция (SQL Server)?

  3. Обединяване на данни от два реда в един

  4. Как мога да проверя дали моят async/await използва I/O порт за завършване?

  5. Нарушено ограничение за множественост Рамка на обект 5