求在动态SQL 中加入单引号

fu_manxing 2003-10-28 11:29:11
例:

declare @ldt_kssj datetime
declare @ldt_jssj datetime
declare @ls_sql varchar(100)


set @ls_sql = 'select * from AA where sj>= '

set @ls_sql = @ls_sql+''' +CONVERT(char(12),@ldt_kssj ,112)+.....

ecec(@ls_sql )

中的''' 是不对的如何处理
...全文
335 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-10-28
  • 打赏
  • 举报
回复
declare @ldt_kssj datetime
declare @ldt_jssj datetime
declare @ls_sql varchar(100)


set @ls_sql = 'select * from AA where sj>= '

set @ls_sql = @ls_sql+char(39)+CONVERT(varchar(12),@ldt_kssj ,112)+.....

exec(@ls_sql )
pengdali 2003-10-28
  • 打赏
  • 举报
回复
select ''''
select ''''''

select char(39) 这个也是
gmlxf 2003-10-28
  • 打赏
  • 举报
回复
''表示'
axiaowin 2003-10-28
  • 打赏
  • 举报
回复
这个原则好,学习
zjcxc 元老 2003-10-28
  • 打赏
  • 举报
回复
记住原则就行了.字符串中,用两个单引号表示一个单号.

对于
select ''''
则显示为一个单引号,因为第一个和最后一个单引号为字符串的定界符.去掉后,还剩下两个单引号,由于两个单引号表示一个单引号,所以最终结果为一个单引号.
zjcxc 元老 2003-10-28
  • 打赏
  • 举报
回复
declare @ldt_kssj datetime
declare @ldt_jssj datetime
declare @ls_sql varchar(100)


set @ls_sql = 'select * from AA where sj>= '

set @ls_sql = @ls_sql+'''' +CONVERT(char(12),@ldt_kssj ,112)+.....

ecec(@ls_sql )
abcd4321 2003-10-28
  • 打赏
  • 举报
回复
exce(@ls_sql+'''convert(char(12),@ldt_kssj ,112)+.....')
zarge 2003-10-28
  • 打赏
  • 举报
回复
select ''''
lvltt 2003-10-28
  • 打赏
  • 举报
回复
如果要查询的字符串中有引号:
例如:
SELECT * FROM tx WHERE Name='aa'aa'

SELECT * FROM tx WHERE Name='aa''aa'

'' 表示'
txlicenhe 2003-10-28
  • 打赏
  • 举报
回复
将一个单引号换成两个单引号即可


declare @ldt_kssj datetime
declare @ldt_jssj datetime
declare @ls_sql varchar(100)


set @ls_sql = 'select * from AA where sj>= '''+CONVERT(char(12),@ldt_kssj ,112)+''' and ... '

ecec(@ls_sql )

34,590

社区成员

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

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