avatar
u*o
2
最近在自学,想请教大家一个renaming的问题
用as可以实现两种renaming, rename一个column, 或者rename一个table
第一种:就是说比如我的table有个column A, 我把A的每个数×10000/2.5(想象一个
特别复杂的数学式,太复杂了以至于我必须rename成B)
然后我想select B-A>1的row
那我必须这么写:select A, A*1000/2.5 as B from...where A*1000/2.5 - A > 1
想用B代替calculated expression (select A, A*1000/2.5*800+6 as B from where B
-A>1) 就不work!!
第二种情况是rename一个table,
select T1.col1, T2.col2
from table1 as T1, table2 as T2 where...
这里rename table的话,我就可以用简写T1,T2出现在表达式里,甚至出现在renaming
的前面。。为什么第一个例子就不能用简写呢
汗,好难说清楚,不知有人听明白了吗。。。
avatar
v*a
3
我的发了:
寄信人: deliver (自动发信系统)
标 题: 本站转帐通知单
发信站: BBS 未名空间站 (Wed May 12 00:31:58 2010)
来 源: mitbbs.com
voa,您好:
您转给this,现金(伪币):10,收取转帐费用:0.10 。
站务
avatar
f*3
4
写个你想写的完整表达出来吧
(select A, A*1000/2.5*800+6 as B from where B
-A>1) from后面有table吗?

B

【在 u*****o 的大作中提到】
: 最近在自学,想请教大家一个renaming的问题
: 用as可以实现两种renaming, rename一个column, 或者rename一个table
: 第一种:就是说比如我的table有个column A, 我把A的每个数×10000/2.5(想象一个
: 特别复杂的数学式,太复杂了以至于我必须rename成B)
: 然后我想select B-A>1的row
: 那我必须这么写:select A, A*1000/2.5 as B from...where A*1000/2.5 - A > 1
: 想用B代替calculated expression (select A, A*1000/2.5*800+6 as B from where B
: -A>1) 就不work!!
: 第二种情况是rename一个table,
: select T1.col1, T2.col2

avatar
J*S
5
没赶上你的包子问题。

【在 v*a 的大作中提到】
: 我的发了:
: 寄信人: deliver (自动发信系统)
: 标 题: 本站转帐通知单
: 发信站: BBS 未名空间站 (Wed May 12 00:31:58 2010)
: 来 源: mitbbs.com
: voa,您好:
: 您转给this,现金(伪币):10,收取转帐费用:0.10 。
: 站务

avatar
u*o
6
好,
select A, A*1000/2.5 as B from table
where A*1000/2.5 - A > 1 (不能是where B-A > 1)
from后面有table,就是说我在原table基础上新加了个新算出来的B, 但filter的时候
不能写B,要写出全部算式,是为什么呢?

【在 f**********3 的大作中提到】
: 写个你想写的完整表达出来吧
: (select A, A*1000/2.5*800+6 as B from where B
: -A>1) from后面有table吗?
:
: B

avatar
B*g
8
去学一下下面这3个的执行次序
SELECT
FROM
WHERE

B

【在 u*****o 的大作中提到】
: 最近在自学,想请教大家一个renaming的问题
: 用as可以实现两种renaming, rename一个column, 或者rename一个table
: 第一种:就是说比如我的table有个column A, 我把A的每个数×10000/2.5(想象一个
: 特别复杂的数学式,太复杂了以至于我必须rename成B)
: 然后我想select B-A>1的row
: 那我必须这么写:select A, A*1000/2.5 as B from...where A*1000/2.5 - A > 1
: 想用B代替calculated expression (select A, A*1000/2.5*800+6 as B from where B
: -A>1) 就不work!!
: 第二种情况是rename一个table,
: select T1.col1, T2.col2

avatar
u*o
9
谢谢,原来是因为
from, where在select之前执行,所以select的alias在where执行的时候不存在。。
又学会一招!很感谢!

【在 B*****g 的大作中提到】
: 去学一下下面这3个的执行次序
: SELECT
: FROM
: WHERE
:
: B

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。