怪脑袋,怪想法,谁能帮我解释 select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12 这个select语句的含义。

msdner 2005-05-03 03:27:11
MS SQL SERVER环境。
...全文
265 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
msdner 2005-05-04
  • 打赏
  • 举报
回复
晕,竟然没有给chengpei_chen(给点阳光就灿烂)分数,眼花了,很抱歉。谢谢你的支持。
sonique 2005-05-04
  • 打赏
  • 举报
回复
支持楼主的钻研精神,我当初就是写出一些测试代码学习coding的
msdner 2005-05-04
  • 打赏
  • 举报
回复
我说错了,ANSI SQL里是没有字符串、变量这些概念了。

列名 的别名也是用双引号括起来的。

不知道谁有ANSI SQL-99 文档?
msdner 2005-05-03
  • 打赏
  • 举报
回复
TO 楼上:

as 在语法里是可以去掉的。
cxmcxm 2005-05-03
  • 打赏
  • 举报
回复
select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12

select 1 as 单引号,2 as 人间正道, 2 as 双引号 ,'莫名其妙', 't',12 是一样的


chengpei_chen 2005-05-03
  • 打赏
  • 举报
回复
分析的不错,up
ianok 2005-05-03
  • 打赏
  • 举报
回复
语法
SELECT [ ALL | DISTINCT ]
[ TOP n [ PERCENT ] [ WITH TIES ] ]
< select_list >

< select_list > ::=

{ *
| { table_name | view_name | table_alias }.*
| { column_name | expression | IDENTITYCOL | ROWGUIDCOL }
[ [ AS ] column_alias ]
| column_alias = expression
} [ ,...n ]

msdner 2005-05-03
  • 打赏
  • 举报
回复
因此,'单引号'在这里是一个字符串常量,作为列名。
msdner 2005-05-03
  • 打赏
  • 举报
回复
看来只能这样解释了。

基于这样一个事实:
select '单引号'=1 --''改为""效果一样
等价于
select 1 '单引号' --''改为""效果一样

以下作一个小结:
select在用于输出时,是以记录的形式给出的,也就说包含列名和值。
在ANSI SQL里面,字符串作为列名是用单引号引起来的。而“为保持与现有应用程序的兼容性,SQL Server 并不完全强制该规则。如果字符串没有超过标识符的长度,则该字符串可包含在双引号内。但不建议这样做。”--引号部份摘自SQL SERVER联机丛书。以上讨论是在QUOTED_IDENTIFIER 为 ON 的情况下。
msdner 2005-05-03
  • 打赏
  • 举报
回复
谢谢楼上两位!

我是想弄明白select的用法,所以我就写了这一句想探出个究竟。。。



按我的理解,select有几个用法:

一)用于查询记录的。格式是:
select...
from...
[...]

select和from这两个是必须的,一个也不能少。


二)用于赋值。格式是:
select @test=some_value
在这里select相当于set。不过,select功能更强,可以一次给多个变量赋值。

三)用于打印。格式
select @test
相当于print。同样,select可以指定列名,如select @test test。


但是,以下就是我不能解释的:

select '单引号'=1
这个是什么意思?等号在这里的作用,是赋值吗?'单引号'在这里是变量吗?不是不能以分隔符作为变量名吗?它和以下这一句的区别?
select '单引号'

还有:
select '单引号' test



子陌红尘 2005-05-03
  • 打赏
  • 举报
回复
select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12

就是返回如下一个结果集:

列名: 单引号 人间正道 双引号 无列名 无列名 无列名
值 : 2 2 2 莫名其妙 t 12
Well 2005-05-03
  • 打赏
  • 举报
回复
結果是知道啊
那又有什麼意思呢
還真的 不知道
沒有完整的代碼不知道
Well 2005-05-03
  • 打赏
  • 举报
回复
select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12 这个select语句的含义。
這個有什麼意義嗎
樓主這樣說我真的不知道是什麼意思
又沒有上下文。
要是有整個代碼全部貼出來看一個也許會知道
chiwei 2005-05-03
  • 打赏
  • 举报
回复
你把语句考到SQL查询分析器里面就知道了
select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12

结果如下:
单引号 人间正道 双引号
----------- ----------- ----------- -------- ---- -----------
1 2 2 莫名其妙 t 12

34,593

社区成员

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

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