Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

jak ustawić swoje dane poziomo

Skrzypce SQL

Konfiguracja schematu MS SQL Server 2017 :

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')

Zapytanie 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

Wyniki :

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela historii programu SQL Server — wypełnianie za pomocą SP lub wyzwalacza?

  2. Pobierz identyfikator wstawionego rekordu:PHP i MS SQL SERVER

  3. Dlaczego nie ma funkcji okienkowych w klauzulach where?

  4. CHARINDEX() vs PATINDEX() w SQL Server — jaka jest różnica?

  5. Jak zmienić sortowanie bazy danych SQL Server za pomocą T-SQL