0

如果下面的代码冒犯了任何专业人士,让我事先道歉,现在问题是:在完成以下位后,它会准确地吐出我正在寻找的内容,如果该列有一个字符串,如果没有,我会得到 1一个零。我的意图是添加第 7 列,将它们加起来,以便我可以将其汇集到报告中的一个等式中,并将其与另一列进行比较。我确信可以在查询中做,我只是不知道怎么做。服务器是sql 2008

    select CASE
WHEN [1  First Name] = ''
THEN 1
ELSE 0
    END as "First Name 1",
    CASE
WHEN [1  Last Name] = ''
THEN 1
ELSE 0
    END as "Last Name 1",
    CASE
WHEN [2  First Name] = ''
THEN 1
ELSE 0
    END as "First name 2",
    CASE
WHEN [2  Last Name] = ''
THEN 1
ELSE 0
    END as "Last Name 2",
    CASE
WHEN [3  First Name] = ''
THEN 1
ELSE 0
    END as "First Name 3",
    CASE
WHEN [3  Last Name] = ''
THEN 1
ELSE 0
    END as "Last Name 3"
    FROM
    member
4

2 回答 2

3

这将为所有行和列求和你的 1

SELECT
    X.*,
    "First Name 1"+
        "Last Name 1"+
        "First name 2"+
        "Last Name 2"+
        "First Name 3"+
        "Last Name 3" AS TheSum
FROM
    (
    SELECT
        CASE WHEN [1  First Name] = '' THEN 1 ELSE 0 END as "First Name 1",
        CASE WHEN [1  Last Name] = '' THEN 1 ELSE 0 END as  "Last Name 1",
        CASE WHEN [2  First Name] = '' THEN 1 ELSE 0 END as "First name 2",
        CASE WHEN [2  Last Name] = '' THEN 1 ELSE 0 END as  "Last Name 2",
        CASE WHEN [3  First Name] = '' THEN 1 ELSE 0 END as "First Name 3",
        CASE WHEN [3  Last Name] = '' THEN 1 ELSE 0 END as  "Last Name 3"
    FROM
        member
    ) X
于 2013-03-07T14:07:21.660 回答
2

除非我遗漏了一些东西,否则您可以将当前查询放在子查询中,然后添加一个包含总数的列:

select "First Name 1",
    "Last Name 1",
    "First name 2",
    "Last Name 2",
    "First Name 3",
    "Last Name 3",
    ("First Name 1" +"Last Name 1"+"First name 2"+"Last Name 2"+"First Name 3"+"Last Name 3") As total
from
(
    select CASE
            WHEN [1  First Name] = '' THEN 1 ELSE 0
        END as "First Name 1",
        CASE
            WHEN [1  Last Name] = '' THEN 1 ELSE 0
        END as "Last Name 1",
        CASE
            WHEN [2  First Name] = '' THEN 1 ELSE 0
        END as "First name 2",
        CASE
            WHEN [2  Last Name] = '' THEN 1 ELSE 0
        END as "Last Name 2",
        CASE
            WHEN [3  First Name] = '' THEN 1 ELSE 0
        END as "First Name 3",
        CASE
            WHEN [3  Last Name] = '' THEN 1 ELSE 0
        END as "Last Name 3"
    FROM member
) m
于 2013-03-07T15:00:09.800 回答