日期:2014-05-18  浏览次数:20879 次

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

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 搞多了就看不懂了

------解决方案--------------------
如果不加,那里面的那一段就不是字符串,就会出错,所以一定得加.
------解决方案--------------------
这个其实是字符串的拼接。
------解决方案--------------------
你说的是不是转意哦? 在字符串里两个' 转意的意思,就像程序里的\'一样。
------解决方案--------------------
在sql字符串里两个'才是一个'

------解决方案--------------------
字符串的连接
------解决方案--------------------
字符串连接用
------解决方案--------------------
其中有两个‘,代表一个''
------解决方案--------------------
用来表示字符串的。 拼接动态的字符串来的
------解决方案--------------------
这是sql与语句中的用来表示字符的.....