![](/img/trans.png)
[英]How to select values where column names are from another table in SQL?
[英]SQL - How to select a column alias from another table?
我在SQL中有一個包含數據的表,另一個表包含該列的別名。 它用於翻譯目的。
我想知道如何對這些列進行選擇,但要從另一個表中檢索別名?
該表包含真實的列名:
ID PageID ColName Order Type Width IsDeleted
1 7 CustType 2 NULL NULL 0
2 7 Description 3 NULL NULL 0
3 7 ApplyVAT 4 NULL NULL 0
4 7 ProduceInvoices 5 NULL NULL 0
5 7 PurchaseSale 6 NULL NULL 0
6 7 TermsDays 7 NULL NULL 0
7 7 DateTimeLastUpdated 8 NULL NULL 0
這是保存別名(文本)的表:
ID ColID UserID Text Order Enabled?
50 22 1 id 1 1
51 1 1 CustTypes 2 1
52 2 1 Description 3 1
53 3 1 ApplyVAT NULL 0
54 4 1 ProduceInvoices NULL 0
55 5 1 PurchaseSale NULL 0
56 6 1 TermsDays NULL 0
57 7 1 DateTimeLastUpdated NULL 0
我相信您將需要使用動態sql來執行此操作,例如:
DECLARE @Sql NVARCHAR(MAX);
SELECT TOP 1 @Sql = 'SELECT dt.ID as ' + at.IDAlias + ', dt.Town as ' + at.TownAlias
+ ' FROM DataTable dt'
FROM AliasTable at
WHERE at.LanguageID = 2;
EXEC(@Sql)
以數據表為例
CREATE TABLE DataTable
(
ID INT,
Town NVARCHAR(50)
);
還有一個包含語言的表-上面各列的依賴別名:
CREATE TABLE AliasTable
(
LanguageId INT,
IDAlias NVARCHAR(100),
TownAlias NVARCHAR(100)
);
關於動態Sql的警告(很多)之一是,您需要確保別名數據已針對Sql Injectin攻擊進行了驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.