如果下面的代码冒犯了任何人作为专业人士,请让我事先道歉,现在回答问题: 在完成下面的位之后,它会准确地吐出我正在寻找的内容,如果列有一个字符串我得到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
答案 0 :(得分:3)
这将为所有行和列提供1s
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
答案 1 :(得分: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