Sql 如何在MS Access中将是/否字段显示为值?

Sql 如何在MS Access中将是/否字段显示为值?,sql,ms-access,Sql,Ms Access,我是SQL新手,很难查询下表 像这样的事情 我知道这里牵涉到工会,但我似乎无法让这一切顺利进行。请帮助您可以尝试以下方法: SELECT RESP_ID, RESP_LVL FROM ( SELECT RESP_ID, 1 AS RESP_LVL FROM yourTable WHERE LEVEL1 = 'Y' UNION ALL SELECT RESP_ID, 2 AS RESP_LVL FROM yourTable WHERE LEVEL2 = 'Y'

我是SQL新手,很难查询下表

像这样的事情


我知道这里牵涉到工会,但我似乎无法让这一切顺利进行。请帮助

您可以尝试以下方法:

SELECT
    RESP_ID,
    RESP_LVL
FROM
(
    SELECT RESP_ID, 1 AS RESP_LVL FROM yourTable WHERE LEVEL1 = 'Y' UNION ALL
    SELECT RESP_ID, 2 AS RESP_LVL FROM yourTable WHERE LEVEL2 = 'Y' UNION ALL
    SELECT RESP_ID, 3 AS RESP_LVL FROM yourTable WHERE LEVEL3 = 'Y' UNION ALL
    SELECT RESP_ID, 4 AS RESP_LVL FROM yourTable WHERE LEVEL4 = 'Y' UNION ALL
    SELECT RESP_ID, 5 AS RESP_LVL FROM yourTable WHERE LEVEL5 = 'Y' UNION ALL
    SELECT RESP_ID, 6 AS RESP_LVL FROM yourTable WHERE LEVEL6 = 'Y' UNION ALL
    SELECT RESP_ID, 7 AS RESP_LVL FROM yourTable WHERE LEVEL7 = 'Y'
) t
ORDER BY
    RESP_ID,
    RESP_LVL;

这里我假设您的复选框由
CHAR(1)
字段支持,该字段的值为
Y
N
。如果没有,那么您必须稍微更改我上面使用的逻辑。

您可以尝试以下方法:

SELECT
    RESP_ID,
    RESP_LVL
FROM
(
    SELECT RESP_ID, 1 AS RESP_LVL FROM yourTable WHERE LEVEL1 = 'Y' UNION ALL
    SELECT RESP_ID, 2 AS RESP_LVL FROM yourTable WHERE LEVEL2 = 'Y' UNION ALL
    SELECT RESP_ID, 3 AS RESP_LVL FROM yourTable WHERE LEVEL3 = 'Y' UNION ALL
    SELECT RESP_ID, 4 AS RESP_LVL FROM yourTable WHERE LEVEL4 = 'Y' UNION ALL
    SELECT RESP_ID, 5 AS RESP_LVL FROM yourTable WHERE LEVEL5 = 'Y' UNION ALL
    SELECT RESP_ID, 6 AS RESP_LVL FROM yourTable WHERE LEVEL6 = 'Y' UNION ALL
    SELECT RESP_ID, 7 AS RESP_LVL FROM yourTable WHERE LEVEL7 = 'Y'
) t
ORDER BY
    RESP_ID,
    RESP_LVL;

这里我假设您的复选框由
CHAR(1)
字段支持,该字段的值为
Y
N
。如果没有,那么您必须稍微更改我上面使用的逻辑。

这是否回答了您的问题?这回答了你的问题吗?