我有一個大表,其中一些列具有查找值。我想為每個查找列創建一個描述列,并用查找表中的描述填充它們。
這是一個例子
主表
select id1, id2, id3 from idtable;
| 編號1 | 編號2 | 編號3 |
|---|---|---|
| 1 | 2 | 3 |
| 1 | 3 | 4 |
查找表
select code, id, desc from lookup;
| 代碼 | ID | 描述 |
|---|---|---|
| 編號1 | 1 | id1-desc1 |
| 編號2 | 2 | id2-desc2 |
| 編號2 | 3 | id2-desc3 |
| 編號3 | 3 | id3-desc3 |
| 編號3 | 4 | id3-desc4 |
我想要這樣的結果集:
| 編號1 | id1desc | 編號2 | id2desc | 編號3 | id3desc |
|---|---|---|---|---|---|
| 1 | id1-desc1 | 2 | id2-desc2 | 3 | id3-desc3 |
| 1 | id1-desc1 | 3 | id2-desc3 | 4 | id3-desc4 |
為此撰寫 SQL 解決方案的最佳和最有效的方法是什么?
uj5u.com熱心網友回復:
您需要三個連接:
SELECT id1, l1.desc AS id1desc,
id2, l2.desc AS id2desc,
id3, l3.desc AS id3desc
FROM idtable i
JOIN lookup l1 ON id1 = l1.id
JOIN lookup l2 ON id2 = l2.id
JOIN lookup l2 ON id3 = l3.id
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389546.html
標籤:sql sql-server 查询语句 选择 sql-server-2012
上一篇:如何將時區轉換的時間戳插入表中?
