VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 885|回复: 9

请教SQL语句问题

[复制链接]

3

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-3-15 17:30:01 | 显示全部楼层 |阅读模式
下面这条语句老是调试不过
老是提示like附近出错  到底错在哪里呢  

        set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
                'select CompanyID, CompanyName,Address,Phone,Place from Companywhere Place like %'+@strPlace+'%'
        exec(@strSql)
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-14 00:30:01 | 显示全部楼层
--try

        set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
                'select CompanyID, CompanyName,Address,Phone,Place from Companywhere Place like ''%'+@strPlace+'%'''
        exec(@strSql)
回复

使用道具 举报

0

主题

88

帖子

55.00

积分

新手上路

Rank: 1

积分
55.00
发表于 2020-6-14 10:00:01 | 显示全部楼层
set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
                'select CompanyID, CompanyName,Address,Phone,Place from Company where Place like ''%'+@strPlace+'%'''
        exec(@strSql)
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-6-14 10:15:01 | 显示全部楼层
少空格啦!
set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
'select CompanyID, CompanyName,Address,Phone,Place from Company     where Place like %'+@strPlace+'%'
exec(@strSql)
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-6-14 12:15:01 | 显示全部楼层
compnaywhere 中间应该有空格分开
回复

使用道具 举报

3

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-14 13:00:01 | 显示全部楼层
怎么发上去这么乱,编辑一下

set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
                'select CompanyID, CompanyName,Address,Phone,Place from Company  
               where Place like %'+@strPlace+'%'

exec(@strSql)

回复

使用道具 举报

0

主题

40

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-6-14 16:45:01 | 显示全部楼层
因为本来正常情况下like后边就要有''来包含
所以这里单引号涉及到变量的调用和字符串的填充,
所以 Place like ''%'+@strPlace+'%''
回复

使用道具 举报

3

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-6-14 17:45:01 | 显示全部楼层

谢谢各位 ok了
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-6-14 22:00:01 | 显示全部楼层
        set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place) '+
                'select CompanyID, CompanyName,Address,Phone,Place from Company  where Place like ''%'+@strPlace+'%'''
        exec(@strSql)
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-15 10:45:01 | 显示全部楼层
总结一下,正确语句为:
set @strSql = 'insert into #indextable(CompanyID,CompanyName,Address,Phone,Place)'+
                'select CompanyID, CompanyName,Address,Phone,Place from Company where Place like ''%'+@strPlace+'%'''
        exec(@strSql)
错误地方有2处:一个是where前没加空格; 另一个是两个%要加单引号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表