如何在SQL WHERE子句中获取特定数据

时间:2015-07-06 19:14:30

标签: sql oracle

我是SQL的新手,想知道是否有人可以指导我如何使用SQL文件的WHERE子句获取特定的数据行。这是我当前的WHERE子句:

CREATE or REPLACE view V_Status1 
AS
    SELECT 
        A.C0401_aid, B.C0401_description DESCR, 
        A.c0432_date DATEREQUIRED, A.C0432_sampl_value_r
    FROM vhis_data A, T0401_accounts B
    WHERE A.C0401_aid = B.C0401_aid 
      AND (B.C0401_aid = 5486 OR B.C0401_aid = 5489 OR B.C0401_aid = 5490);

5486,5489和5490代表我需要数据的帐户,但我当前的条款对我想要的内容没有意义。我需要来自所有三个帐户的数据而不仅仅是一个。如果您需要任何澄清,请告诉我。

3 个答案:

答案 0 :(得分:2)

您可以使用in运算符

示例:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

您的案例将如下:

WHERE A.C0401_aid = B.C0401_aid AND
B.C0401_aid in(5486,5489,5490);

答案 1 :(得分:1)

清除语法,但这应该执行当前查询执行的相同操作。

CREATE or REPLACE view V_GTAAStatus1 AS
SELECT A.C0401_aid, 
       B.C0401_description DESCR, 
       A.c0432_date DATEREQUIRED, 
       A.C0432_sampl_value_r [column_name]
FROM vhis_data A
LEFT JOIN T0401_accounts B on A.C0401_aid = B.C0401_aid
WHERE B.C0401_aid IN (5486,5489,5490);

答案 2 :(得分:1)

您使用的是旧版JOIN语法。 @TinyOS答案是正确的,这是您在更接受的当前语法中的原始查询:

CREATE or REPLAC view V_GTAAStatus1 AS
SELECT A.C0401_aid, B.C0401_description DESCR, 
   A.c0432_date DATEREQUIRED, A.C0432_sampl_value_r
FROM vhis_data A
INNER JOIN T0401_accounts B ON A.C0401_aid = B.C0401_aid
WHERE B.C0401_aid IN (5486, 5489, 5490);
相关问题