我们可以使用SQL SELECT中的CASE子查询来选择表中的列吗?

时间:2019-06-04 21:34:56

标签: sql r select case

我有一个主表和两个支持表。我需要将所有三个表中的信息提取到一个表中。但是,两个支持表的信息冲突。因此,在大表中,只有某些行应具有来自支持表之一的值,而其他行应具有来自另一支持表的值。我想根据情况使用CASE语句选择输入的数据

此sql代码在R语言代码内,用于其他目的。但是sql代码是独立的,并且没有与R代码相关的错误。 A.A11和C.C1都是类型字符,而A.A12和C.C1都是数字。

<ul>
  <li>item</li>
  <li class="red">item
    <ul>
      <li>item</li>
      <li class="red">item</li>
      <li>item</li>
    </ul>
  </li>
</ul>
"SELECT ",
                 "A.A1, A.A3,",
                 "CASE",
                 "WHEN A.A12 = 0 THEN C.C6, C.C7",
                 "ELSE B.B6, B.B7",
                 "END",
                 "FROM ((A",
                 "INNER JOIN B",
                 "ON A.A12 = B.B1)",
                 "INNER JOIN C",
                 "ON CAST(A.A11 AS varchar(10)) = CAST(C.C1 AS varchar(10)))"

1 个答案:

答案 0 :(得分:0)

据我所知,您想按照这些原则做些事情...

SELECT
A.A1, 
A.A3,
CASE WHEN A.A12 = 0 THEN C.C6 ELSE B.6 END AS X6,
CASE WHEN A.A12 = 0 THEN C.C7 ELSE B.7 END AS X7,
FROM A INNER JOIN B ON A.A12 = B.B1
       INNER JOIN C ON CAST(A.A11 AS varchar(10)) = CAST(C.C1 AS varchar(10))