【问题标题】:SQL table getting info from another table based on a IF statement with stored procedureSQL 表基于带有存储过程的 IF 语句从另一个表中获取信息
【发布时间】:2013-08-01 14:02:52
【问题描述】:

我无法弄清楚如何从另一个表中获取列信息,然后是我通过 SELECT 命令访问的表,并根据 IF 语句选择该列的某些单元格。下面是 SQL 代码:

    SELECT Name, Age, Grant
    FROM table

现在有了授权选择,我想访问另一个表(在授权所在的位置有一个 IF 语句)。将有 2 个不同的授权值,即“a”和“b”。当授予为“a”时,您将选择第一列,第二个表的第一行,而“b”变量将选择表 2 中第一列的第二行。如果这不能只在SQL 然后我也在使用 asp.net/C#,但我更希望它在 SQL 中完成。我还使用 asp:SqlDataSource 从 SQL 服务器收集数据。提前感谢大家的帮助!

表格:

    table 1: with name, age and grant 
    --------------------
    |name    |Age|Grant|
    --------------------
    |jeff    |16 | A   |
    --------------------
    |jake    |21 | B   |
    -------------------- 

    table 2: with grant and grantReturn 
    -------------------
    |grantReturn|Grant|
    -------------------
    |spring     |  A  |
    -------------------
    |wintwe     |  B  |
    -------------------

抱歉,如果表格做得不好。表 1 有更多信息,但如果有两个人拥有不同的资助,我会保持简单。对于表 2,这就是所有信息。再次感谢您!

【问题讨论】:

  • 如果您发布相关的表架构(表及其列)以及一些示例数据和预期结果,会更容易提供帮助。
  • 我添加了一个示例,说明我的 SQL 数据库中的表。
  • 您需要为此使用连接:w3schools.com/sql/sql_join.asp

标签: c# asp.net sql select


【解决方案1】:

听起来你想要的是一个 JOIN。

SELECT t1.name, t1.age, t2.grantReturn
FROM Table1 t1
JOIN Table2 t2 ON t1.Grant = t2.Grant

sql 连接(在本例中为内部连接)将从第一个表中获取行,并在给定条件下将它们与第二个表中的行匹配。在这种情况下,它说,对于表 1 中的每个表,找到表 2 中具有相同 Grant 的行。然后在 select 语句中,您可以从该表中返回您想要的任何其他数据。

【讨论】:

    【解决方案2】:

    好的。所以你需要了解JOINS

    SELECT Name, Age, table.Grant, table2.grantreturn
    FROM table
         inner join table2 on table.grant = table2.grant
    

    http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      相关资源
      最近更新 更多