我是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'
)
b
(b.buy_value)?FROM portal.gpb_bank_quotes
- 是表名吗?它是否可能与.
提前致谢
答案 0 :(得分:5)
b
是portal.gpb_bank_quotes
的{{3}}。这很方便,因此您无需键入portal.gpb_bank_quotes.buy_value
等
是。 portal
是table alias,gpb_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';