首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

SQL语句中单引号转义符的有关问题

2012-02-27 
SQL语句中单引号转义符的问题 写SQL语句的时候发现单引号转义符的问题现在了解了一些,可以自己写出正确的

SQL语句中单引号转义符的问题

写SQL语句的时候发现单引号转义符的问题
现在了解了一些,可以自己写出正确的语句
比如说,我有一个表叫做bread
里面字段名分别为   datatime   ,a,b,都是字符串型
现在我写的SQL语句是这样的

'   Insert   into   bread(datatime,a,b)   values   (   '   +     ' ' ' '   +   datatimetostr(now)   +   ' ' ' '   +   ', ' ' '   +   floattostr(a.value)   +   '   ' ', ' '   '   +   floattostr(b.value)   +   ' ' ') ')  

其中datatimetostr(now)是将当前时间转换为字符串,floattostr是将浮点型数据转换成字符串
我现在的理解是这样的,由于SQL要求每个字符串类型的数据都要有单引号括起来,所以这个地方要用到转义字符,用两个单引号来表示一个单引号。
但是我很不理解的是,下面这条语句跟上面这条居然是等价的

'   Insert   into   bread(datatime,a,b)   values   (   '   +     ' ' ' '   +   datatimetostr(now)   +   ' ' ' '   +   ', '   +   floattostr(a.value)   +   ', ' ' '   +   floattostr(b.value)   +   ' ' ') ')  

区别在于中间的floattostr(a.value)   它没有用单引号括起来。难道中间的就可以省略?还是别的原因?

困惑了半天了。。。。


[解决办法]
你的疑问应该在这里看一下我的测试

create table t2(a int,b float, c varchar2(100));
--插入数据
insert into t2
select '1 ', '2 ',3 from dual; --注意我插入的数据类型
--查询插入结果
select * from t2
--123

热点排行