一个SELECT语句的疑惑

忠向 2004-09-14 10:56:56

数据库是 MS SQL Server 2000,
SELECT "DEMO"."NAME", "DEMO"."BIRTHDAY", '(...)' "DEMO"."PHOTO" FROM "DEMO" 报错,
但是这个语句就没有问题
SELECT "NAME", "BIRTHDAY", '(...)' "PHOTO" FROM "DEMO"

其中PHOTO字段是IMAGE类型

我在查询管理器中,使用发现带这个'(...)'和不带结果是不一样的,而且速度也明显不同,
后者似乎是取出IMAGE字段的原始内容,而前者就简单用'(...)'代替,查TSQL的手册也没有
找到相关用法,非常希望哪位能否指点一下在IMAGE类型字段前面添加'(...)'的用法,谢谢!
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
netcoder 2004-09-14
  • 打赏
  • 举报
回复
抱歉,刚才没有说清楚

"DEMO"."PHOTO"确实是一个和法的字段名,但在查询语句里不能那样用,因为语法分析器在
'(...)'后面的位置期待的是一个字段名,所以说"DEMO"."PHOTO"这样的用法是错误的,要用分隔符分隔,这里使用方括号[]

SELECT "DEMO"."NAME", "DEMO"."BIRTHDAY", '(...)' ["DEMO"."PHOTO"] FROM "DEMO"
忠向 2004-09-14
  • 打赏
  • 举报
回复
谢谢指点

"DEMO"."PHOTO" 确实是表DEMO的一个有效字段呀?为什么说“因为"DEMO"."PHOTO" 不是合法的字段名”?
netcoder 2004-09-14
  • 打赏
  • 举报
回复
原因如上
SELECT "DEMO"."NAME", "DEMO"."BIRTHDAY", '(...)' "DEMO"."PHOTO" FROM "DEMO"
是不对的
因为"DEMO"."PHOTO" 不是合法的字段名
netcoder 2004-09-14
  • 打赏
  • 举报
回复
1、SELECT "NAME", "BIRTHDAY","PHOTO" FROM "DEMO"
取出PHOTO字段内容

2、SELECT "NAME", "BIRTHDAY", '(...)' "PHOTO" FROM "DEMO"
等价于
SELECT "NAME", "BIRTHDAY", '(...)' AS "PHOTO" FROM "DEMO"

这里的"PHOTO"已经不是表DEMO的里的PHOTO字段,而是你新加的字段了,表DEMO的PHOTO字段没有任何关系
忠向 2004-09-14
  • 打赏
  • 举报
回复
找到解决办法了,结贴!
忠向 2004-09-14
  • 打赏
  • 举报
回复
非常希望能彻底解决这个问题
忠向 2004-09-14
  • 打赏
  • 举报
回复
非常感谢,在MS SQL下面确实可以,但是ORACLE下用这样方法不行,问题依旧

34,593

社区成员

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

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