SQL表基于具有存储过程的IF语句从另一个表获取信息

时间:2013-08-01 14:02:53

标签: c# asp.net sql select

我在查明如何从不同的表中获取列信息时遇到问题,然后通过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,这是所有信息。再次谢谢你!

2 个答案:

答案 0 :(得分:2)

听起来像你想要的是一个加入。

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

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

答案 1 :(得分:1)

确定。因此,您需要了解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