我正在嘗試加入兩個表。
表 1:列 1、列 2、語言(英語和法語)
表 2:列 A、列 B、Language_ID (1,2)
Language_ID 和 Language 是匹配的列。這里,1指的是英文,2指的是法文。我正在考慮在加入表時使用 case when & 轉換資料型別(數字到 varchar)。有人可以幫我弄這個嗎?非常感謝!
uj5u.com熱心網友回復:
您可以使用 CASE 運算式并將 language_id 轉換為 language 并按如下所示執行 JOIN:
SELECT t1.column1,t1.column2, t2.columnA, t2.columnB
FROM Table1 AS t1
INNER JOIN
(SELECT ColumnA, ColumnB,
CASE Language_ID WHEN 1 THEN 'English'
WHEN 2 THEN 'French'
End AS Language
FROM Table2) AS t2
ON t1.Language = t2.Language
uj5u.com熱心網友回復:
Van 的回答很好——他轉換了型別——但是如果有兩百種語言呢?然后你需要做這樣的事情(但表不是動態表)
SELECT table1.Column1, table1.Column2, table2.Column1, table2.Column2
FROM table1
JOIN (
VALUES (1, 'English'),
(2, 'French')
) AS jTable(ID, Lang) ON table1.Language = jTable.Lang
JOIN table2 on jTable.ID = table2.Language_ID
注意——在現實世界中你經常這樣做——這種表甚至有一個名字——一個查找表。通常,ID 將保存在兩個表中,您可以鏈接到查找表以獲取列印值。但是它們也可以(并且已經)以這種方式使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346118.html
標籤:sql sql-server 查询语句
