[英]SQL value of a row as column name
我想考慮做以下事情的可能性:
create table customers
(
ID int identity,
name varchar(50)
)
create table additional
(
ID int identity,
customer_id int references customers(ID),
input_name varchar(50),
input_value varchar(50)
)
它應該能夠為特定客戶定義其他輸入的名稱和值,並將其顯示在列中。 例:
insert into customers (name) values ("aaa");
insert into additional (customer_id,input_name,input_value) values (1,"last name","bbb");
現在我需要的結果是:
customerID | first name | last name
-----------------------------------
1 | aaa | bbb
因此,其他字段將顯示為列名。
如果您對靜態查詢感到滿意,這很容易:
SELECT c.customerID, a2.input_value AS first_name, a1.input_value AS last_name
FROM customers c
LEFT JOIN additional a1 ON a1.ID = c.ID and a1.input_name = 'last name'
LEFT JOIN additional a2 ON a2.ID = c.ID and a2.input_name = 'first name'
如果您對靜態查詢不滿意,這意味着列的數量和名稱將隨數據而變化。 因此,在這種情況下,您將必須動態構建查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.