簡體   English   中英

SQL 將列值作為枚舉返回 - 來自另一列的 GetValue() 字段

[英]SQL Return Column value as Enum - GetValue() field from another Column

這是兩張表;

分類

----------------------------------------
Cathegory (tinyint)  |  Name (nvarchar)
----------------------------------------
0                    |  Field
1                    |  Mountain
2                    |  River
----------------------------------------

地方

------------------------------------------
Name (nvarchar)      |  Cathegory(tinyint)
------------------------------------------
Abc                  |  2
Xyz                  |  1
------------------------------------------

當我想檢索列出名稱及其分類的地方時,不是 int 格式,而是根據分類中的描述。

所以檢索 Abc 我想要這樣;

“河”而不是“2”

請使用以下查詢,

select c.name as place, p.name as name from Cathegories c
inner join Places p
on (c.Cathegory  = p.Cathegory);

您需要在分類上加入兩個表, cathegory所示。

select
    p.name as places,
    c.name as category_name
from places p
join cathegories c
on p.cathegory = c.cathegory

這是基於接受的答案的多個 JOIN 語句的版本:

SELECT 

ColumnUserViews,

C.Cathegory AS VCathegory, 

ColumnUserPoints, 

T.Description AS VTag1,
TT.Description AS VTag2


FROM dbo.Users U

JOIN dbo.Cathegories C ON U.Cathegory = C.Cathegory
JOIN dbo.Tags T ON U.Tag1 = T.Tag
JOIN dbo.Tags TT ON U.Tag2 = TT.Tag

關鍵字U定義了物理表Users、T Tags,TT也是Tags(可自由重命名)。 VCathegory 是一個要檢索的新虛擬列,它保存根據當前方案轉換為 Cathegories.Description (的字符串等效項)的 Users.Cathegory 的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM