请教:SELECT语句中怎样为含有表别名的列赋常量值

hellowork 2006-06-12 11:09:56
在表连接的SELECT语句中经常要对引用的列加上各自的表别名,例如:
SELECT a.colx,b.coly FROM table1 AS a ,table2 AS b WHERE a.name = b.name
但是,不能再对含有表别名的列赋常量值,例如不能这样:
SELECT a.colx = 常量,b.coly FROM table1 AS a,table2 AS b WHERE a.name = b.name
甚至也不能这样:
SELECT a.colx = 常量 FROM table1 AS a

请教大家解决的办法,多谢!
...全文
549 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellowork 2006-06-12
  • 打赏
  • 举报
回复
多谢各位朋友的热心参与,fcuandy(www.iaspnet.com)朋友提供的办法是可行的(可能是唯一的解决办法)!
在复杂查询应用中,对含表别名的列赋值有时是必须的,因为还涉及到数据类型的问题。按照fcuandy(www.iaspnet.com)朋友提供的办法只要常量符合该列数据类型的要求,就会保证查询结果中该列的数据类型不变,如果使用 "select 常量 as colx"则无法保证查询结果中colx的数据类型不变,在有些应用中,是必须严格保证数据类型一致的。
hellowork 2006-06-12
  • 打赏
  • 举报
回复
多谢fcuandy(www.iaspnet.com)朋友的指教!这个办法好,问题解决!

to: playwarcraft朋友
“直接select 常量 as colx from table1 a,不就可以吗?”
--在多表连接的时候,有时多表中的列可能重名,如果要在语句的其它地方(比如WHERE)引用重名的列,这时为列指定表别名是必不可少的。如果使用 "SELECT 常量 as colx"无法保证引用的列准确无误了。
wwh999 2006-06-12
  • 打赏
  • 举报
回复
LZ原来是提别名的问题,好像是这样呢...
select A.vID=01 from cre A --此句无法赋值..

关注!
fcuandy 2006-06-12
  • 打赏
  • 举报
回复
coolingpipe(冷箫轻笛) ( ) 信誉:100 2006-06-12 11:19:00 得分: 0



为什么要加a.那?
如果colx在两个表里面都有,那么你如果想让该列值为常数的话,就不在呼到底是从那个表查出来的
如果仅在某个表里有,那也不用前面加表前缀阿?
----------------------------------------------------

有这种情况还是要区分表的,当然实际中这里变量i不一定就是普通变量:


DECLARE @i int
SET @i=1
SELECT [x.xname]=(CASE @i WHEN 1 THEN 'bbb' ELSE 'ccc' END) FROM xtable x

另外楼上的,请看清楼主是说表用别名.


wwh999 2006-06-12
  • 打赏
  • 举报
回复
create table cRe(vId varchar(10))
insert cRe select '2001-3021'
union select '2001-3031'
union select '2001-3032'
GO
--此句可以通过啊...
select vID=01 from cre

drop table cRe
冷箫轻笛 2006-06-12
  • 打赏
  • 举报
回复

为什么要加a.那?
如果colx在两个表里面都有,那么你如果想让该列值为常数的话,就不在呼到底是从那个表查出来的
如果仅在某个表里有,那也不用前面加表前缀阿?
fcuandy 2006-06-12
  • 打赏
  • 举报
回复
加标识符就可以了.
[a.aname]='xxxx'
playwarcraft 2006-06-12
  • 打赏
  • 举报
回复
SELECT a.colx = 常量 FROM table1 AS a
--------------------------------------------------------------

直接select 常量 as colx from table1 a,不就可以吗?你想
wwh999 2006-06-12
  • 打赏
  • 举报
回复
是吗?我试试..
冷箫轻笛 2006-06-12
  • 打赏
  • 举报
回复
晕,这样也行!

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧