繁体   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