+ -
当前位置:首页 → 问答吧 → 为什么动态SQL语句非都要加‘’‘’‘???、

为什么动态SQL语句非都要加‘’‘’‘???、

时间:2011-12-07

来源:互联网


declare @sql varchar(8000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , max(case cast(datepart(mm,dated) as char(5)) when ''' + cast(datepart(mm,dated) as char(5)) + ''' then shuliang else 0 end) [' + cast(datepart(mm,dated) as char(7)) + ']'
from (select distinct dated from hl) as a
set @sql = @sql + ' from hl group by name'
exec(@sql) 

最后执行的@sql 怎么合起来啊,为什么都喜欢加''' ,不停的给@sql 搞多了就看不懂了

作者: tianyazaixian   发布时间: 2011-12-07

如果不加,那里面的那一段就不是字符串,就会出错,所以一定得加.

作者: qianjin036a   发布时间: 2011-12-07

这个其实是字符串的拼接。

作者: fredrickhu   发布时间: 2011-12-07

你说的是不是转意哦? 在字符串里两个' 转意的意思,就像程序里的\'一样。

作者: jinfengyiye   发布时间: 2011-12-07

在sql字符串里两个'才是一个'

作者: pengxuan   发布时间: 2011-12-07

引用 1 楼 qianjin036a 的回复:

如果不加,那里面的那一段就不是字符串,就会出错,所以一定得加.


待努力。。。看多了这个不停的赋值赋值,简单的语句也搞复杂了
。。

作者: tianyazaixian   发布时间: 2011-12-07

引用 4 楼 pengxuan 的回复:

在sql字符串里两个'才是一个'


是说在动态语句里两个'才是一个'?

作者: tianyazaixian   发布时间: 2011-12-07