sql >> Database teknologi >  >> RDS >> Sqlserver

hvordan du gør dine data vandrette

SQL Fiddle

MS SQL Server 2017 Schema Setup :

create table MyTable(Name varchar(max),BStatus varchar(max),Bank varchar(max))
insert into MyTable (Name,BStatus,Bank)values('Thung','Active', 'ABC Bank')
insert into MyTable (Name,BStatus,Bank)values('Thung','Hold', 'ABC Bank')
 

Forespørgsel 1 :

with CTE AS (select *,
(CASE WHEN BStatus='Active' THEN BStatus  END) AS Status1,
(CASE WHEN BStatus = 'Hold' THEN BStatus END) AS Status2,
(CASE WHEN Bank='ABC Bank' THEN Bank END) AS Bank1,
(CASE WHEN Bank='ABC Bank' THEN Bank END) AS Bank2,
ROW_NUMBER() OVER (PARTITION BY BStatus,Bank Order By Name) as rn
from MyTable
group by Name,BStatus,Bank              )

select c.Name
,max(c.Status1) AS Status1
,max(c.Status2) AS Status2
,max(c.Bank1) AS Bank1
,max(c.Bank2) AS Bank2
from cte c
where rn=1
group by c.Name,c.Bank
 

Resultater :

| Name | Status1 | Status2 | Bank1 | Bank2 | |-------|---------|---------|----------|----------| | Thung | Active | Hold | ABC Bank | ABC Bank |


  1. Du ved, du vil:Migrere fra Oracle til MariaDB

  2. Viser billede i Ireports ved hjælp af PostgreSql

  3. Hvordan indstilles tidszoneregionen for JDBC-forbindelse og undgår, at SqlException-tidszoneregionen ikke findes?

  4. Online vs offline backup