需要帮助来理解SQL查询(oracle10g)

时间:2011-09-19 08:46:07

标签: sql oracle oracle10g

我是SQL的新手,在理解SQL语句中的部分方面几乎无需帮助

select BUY_VALUE,
    SELL_VALUE,
    RATE_DAY,
    RATE_TIME
from ( SELECT TRIM (b.ticker),
           TRIM (TO_CHAR (b.buy_value, '9999999.99')) BUY_VALUE,
           TRIM (TO_CHAR (b.sell_value, '9999999.99')) SELL_VALUE,
           b.currency, 
           TO_CHAR (TRUNC (SYSDATE), 'YYYYMMDD') rate_day,
           TO_CHAR (SYSDATE, 'HH24MISS') rate_time 
         FROM portal.gpb_bank_quotes b
         WHERE b.ticker = 'GAZP'
     )
  1. 什么是b(b.buy_value)?
  2. FROM portal.gpb_bank_quotes - 是表名吗?它是否可能与.
  3. 分隔
  4. 啊,太难了///
  5. 提前致谢

3 个答案:

答案 0 :(得分:5)

  1. bportal.gpb_bank_quotes的{​​{3}}。这很方便,因此您无需键入portal.gpb_bank_quotes.buy_value

  2. 是。 portaltable aliasgpb_bank_quotes是该架构中的表格。

答案 1 :(得分:3)

b是表格/视图gpb_bank_quotes的别名,位于架构portal中。

编辑 - 根据OP的评论:

SELECT ... FROM ( SELECT... FROM...)只是将内部SELECT用作subquery

答案 2 :(得分:1)

也可以在没有外部选择的情况下获得此查询的相同结果。如果将日期格式指定为TO_CHAR

,则SYSDATE上的TRUNC也是冗余的
SELECT TRIM (TO_CHAR (b.buy_value, '9999999.99')) BUY_VALUE,
       TRIM (TO_CHAR (b.sell_value, '9999999.99')) SELL_VALUE,
       TO_CHAR (SYSDATE, 'YYYYMMDD') RATE_DAY,
       TO_CHAR (SYSDATE, 'HH24MISS') RATE_TIME 
  FROM portal.gpb_bank_quotes b
  WHERE b.ticker = 'GAZP';