sql将列值作为另一列的enum-getvalue()字段返回

o2gm4chl  于 2021-07-26  发布在  Java
关注(0)|答案(3)|浏览(399)

这是两张table;
天主教

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

地点

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

当我想检索的地方列表名称和他们的cathegories不是int格式,但根据cathegories中的描述。
所以我想要这样;
“河”而不是“2”

cnwbcb6i

cnwbcb6i1#

你需要把两张table连在一起 cathegory 如下所示。

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

bcs8qyzn2#

请使用下面的查询,

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

c9qzyr3d3#

以下是基于公认答案的多个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定义物理表用户、t标记以及tt标记(可自由重命名)。vcathegory是要检索的新虚拟列,其中包含根据当前方案转换为cathegories.description('s string equivalent)的users.cathegory的值。

相关问题