社区
MS-SQL Server
帖子详情
怪脑袋,怪想法,谁能帮我解释 select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12 这个select语句的含义。
msdner
2005-05-03 03:27:11
MS SQL SERVER环境。
...全文
281
14
打赏
收藏
怪脑袋,怪想法,谁能帮我解释 select '单引号'=1,'人间正道'=2, "双引号"=2 ,'莫名其妙', 't',12 这个select语句的含义。
MS SQL SERVER环境。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
mysql中
双引号
和
单引号
有什么区别
mysql中
双引号
和
单引号
有什么区别 前2天看到有人问,mysql中
双引号
和
单引号
有什么区别? 我就直接po代码和截图了,如下
select
* from employees where last_name = ‘K_ing’;
select
* from employees where last_name = “K_ing”; 由此可见,mysql中,其实
单引号
和
双引号
没啥区别,
单引号
和
双引号
都可以表示字符串 mysql的别名可以不加引号,如果加引号,
单引号
和
双引号
以及反引号都可以
Oracle中的
单引号
(转义)
ORACLE
单引号
转义: 在ORACLE中,
单引号
有两个作用: 1:字符串是由
单引号
引用 2:转义。
单引号
的使用是就近配对,即就近原则。而在
单引号
充当转义角色时相对不好理解 1.从第二个
单引号
开始被视为转义符,如果第二个
单引号
后面还有
单引号
(哪怕只有一个)。 SQL>
select
'''' result from dual; RESUL
【转】Oracle之
单引号
与
双引号
https://blog.csdn.net/mmake1994/article/details/85982743 一、
单引号
1.引用一个字符串常量,也就是界定一个字符串的开始和结束
select
* from t_sys_user where id='15'; --查询id为15的字符
select
* fro...
单引号
字符型注入
判断sql注入漏洞的类型:1.数字型、2.字符型。用and 1=1 和and 1=2来判断。将1=1换成1=2发现没有报错,但不显示信息,说明可以使用字符注入。继续输入and 1=2,页面显示正常,说明不是数字型注入漏洞。使用order by,从一开始逐渐增加,一直到报错时停止。通过此处便可以插入更多的sql
语句
去查询一些信息。id=1,得到用户名和密码。id=1’ and 1=1--+由此可以确认列数为3(因为到4报错)输入and 1=1来,没有变化。可以得到上一步骤账户的密码。
oracle
单引号
和
双引号
的区别
单引号
和
双引号
oracle都支持,但是两者是有区别的。 一、
双引号
的作用:关键字,对象名、字段名、别名加
双引号
,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。 1.
双引号
引住关键字
select
“sysdate” from dual;等同于
select
sysdate from dual; 如下则不会输出时间,只会输出sysdate这个字符串。
select
‘sy
MS-SQL Server
34,872
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章