首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我使用SELECT WHERE to find data,我如何返回数据所在的列名?

如果我使用SELECT WHERE to find data,我如何返回数据所在的列名?
EN

Stack Overflow用户
提问于 2019-08-01 06:44:28
回答 2查看 62关注 0票数 0

我甚至不确定从哪里开始SELECT查询本身,但是假设我有一个表:

代码语言:javascript
复制
ID   Environment  Position1  Position2   Position3
1    Operations   Tech       Survey      Phone
2    Warehouse    Stocker    Maintenance Trucker
3    Office       Logger     Janitor

当我搜索特定的职位名称时,我如何执行SELECT查询来给出列名,但我需要知道它在哪一列下?

示例:

代码语言:javascript
复制
SELECT columnname 
FROM table 
WHERE Position1 = 'Janitor' OR Position2 = 'Janitor' OR Position3 = 'Janitor'

我不知道是否有更好的方法来做到这一点,但想法是为每个用户分配Position1-3和一个环境。如果它们被移动到另一个环境,它们将保留Position#,但其标签会更改。

这些数据是假的,而且老实说更令人困惑,因为我不想泄露真实的数据。有可能我的桌子设置得不好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-01 07:14:17

使用CASE表达式。

代码语言:javascript
复制
SELECT CASE 'Janitor'
        WHEN Position1 THEN 'Position1'
        WHEN Position2 THEN 'Position2'
        ELSE 'Position3'
    END AS columnname
FROM table
WHERE 'Janitor' IN (Position1, Position2, Position3)

但是最好使用下面这样的表来规范化您的数据。table1_id是原始表的外键。

代码语言:javascript
复制
table1_id   PositionNum Position
1           1           Tech
1           2           Survey
1           3           Phone
2           1           Stocker
2           2           Maintenance
2           3           Trucker
3           1           Logger
3           2           Janitor

SELECT PositionNum
FROM thisTable
WHERE Position = 'Janitor'
票数 0
EN

Stack Overflow用户

发布于 2019-08-01 07:19:08

试试这个:

代码语言:javascript
复制
Select
   ID,
   Environment,
   (
        Case
            When Position1 = N'Janitor' Then N'Position1'
            When Position2 = N'Janitor' Then N'Position2'
            When Position3 = N'Janitor' Then N'Position3'
            When Position4 = N'Janitor' Then N'Position4'
            Else N'none'
        End
    ) As ColumnName
From Table
WHERE Position1 = N'Janitor' Or Position2 = N'Janitor' Or Position3 = N'Janitor' Or Position4 = N'Janitor'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57299721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档