SQL返回列的值作为Enum-来自另一列的GetValue()字段

问题描述 投票:-1回答:3

这是两个表;

类别

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

地点

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

[当我想检索场所列表名称及其名称时,不是以int格式而是根据名称中的描述。

所以检索Abc,我想要这样;

“河”代替'2'

sql sql-server subquery enumeration
3个回答
1
投票

您需要在cathegory上连接两个表,如下所示。

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

2
投票

请使用以下查询,

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

0
投票

这里是基于接受的答案的多个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是要检索的新虚拟列,其中包含Users.Cathegory的值,其转换为Cathegories.Description(等效字符串),按照当前方案。

© www.soinside.com 2019 - 2024. All rights reserved.