存储过程解析字符串 在线的,解决后100分奉上

pinhailinfeng 2009-01-16 11:00:25
参数@depatrment = '%信息安全科%'or all_path_name like'%易泰%'
在存储过程中如何转换为
select * from table where all_path_name like '%信息安全科%'or all_path_name like'%易泰%'

在线的,解决后100分奉上,谢谢。
...全文
118 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dobear_0922 2009-01-16
  • 打赏
  • 举报
回复
如果要执行的话:

create procedure P1 
@depatrment nvarchar(1000)
as
begin
declare @sql nvarchar(1000)
set @sql= 'select * from table '
+ isnull('where all_path_name like '+quotename(@depatrment ,''''),'')
--print @sql
exec(@sql)
end
go
dobear_0922 2009-01-16
  • 打赏
  • 举报
回复

create procedure P1
@depatrment nvarchar(1000)
as
begin
declare @sql nvarchar(1000)
set @sql= 'select * from table '
+ isnull('where all_path_name like '+quotename(@depatrment ,''''),'')
print @sql
--exec(@sql)
end
go

exec P1 '''%信息安全科%'' or all_path_name like ''%易泰%'''
/*
select * from table where all_path_name like '''%信息安全科%'' or all_path_name like ''%易泰%'''
*/

drop procedure P1
新丁11111 2009-01-16
  • 打赏
  • 举报
回复
exec @sqltext
flairsky 2009-01-16
  • 打赏
  • 举报
回复
declare @depatrment varchar(max)
set @depatrment = '''%信息安全科%'''+'or all_path_name like'+'''%易泰%'''
declare @cmd varchar (max)
set @cmd = N'
select * from table where all_path_name '+ @depatrment


新丁11111 2009-01-16
  • 打赏
  • 举报
回复
declare @depatrment varchar(500)
set @depatrment= '''%信息安全科%''or all_path_name like''%易泰%'''

declare @sqltext varchar(500)

set @sqltext='select * from table where all_path_name like '

set @sqltext=@sqltext+@depatrment

select @sqltext
bennyyyyy 2009-01-16
  • 打赏
  • 举报
回复
动态拼字符
子陌红尘 2009-01-16
  • 打赏
  • 举报
回复
引号处理有点问题,修改一下:

declare @depatrment varchar(40),@sql varchar(8000)
set @depatrment='all_path_name'
set @sql='select * from table where '+@depatrment+' like ''%信息安全科%'' or all_path_name like''%易泰%'''
exec(@sql)
子陌红尘 2009-01-16
  • 打赏
  • 举报
回复
declare @depatrment varchar(40),@sql varchar(8000)
set @depatrment='all_path_name'
set @sql='select * from table where '+@depatrment+' like '''%信息安全科%'''or all_path_name like'''%易泰%''''
exec(@sql)
pinhailinfeng 2009-01-16
  • 打赏
  • 举报
回复
分不够可以加,急等解决
pinhailinfeng 2009-01-16
  • 打赏
  • 举报
回复
谢谢楼上各位解决啦这就给分
pinhailinfeng 2009-01-16
  • 打赏
  • 举报
回复
print @sql:

select * from #monitorRecordInfo where all_path_name%信息安全科%' or all_path_name like '%易泰%
pinhailinfeng 2009-01-16
  • 打赏
  • 举报
回复
执行:

USE [cusomp]
GO

DECLARE @return_value int

EXEC @return_value = [dbo].[GET_DEPARTMENT_NOCOMPLETE_TASK_RankName]
@ORG_ID = N'%信息安全科%'' or all_path_name like ''%易泰%'

SELECT 'Return Value' = @return_value

GO


存储过程用到部分

declare @depatrment varchar(40),@sql varchar(8000)
set @depatrment='all_path_name'
set @sql='select * from #monitorRecordInfo where '+@depatrment+''+@ORG_ID
print @sql
exec(@sql)
GO


报错

消息 102,级别 15,状态 1,第 1 行
'%' 附近有语法错误。

(1 行受影响)
消息 102,级别 15,状态 1,第 1 行
'%信息安全科%' 附近有语法错误。
消息 105,级别 15,状态 1,第 1 行
字符串 '' 后的引号不完整。

claro 2009-01-16
  • 打赏
  • 举报
回复
帮顶

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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