Sql Server 存储过程,怎样把传入的字符串作为where条件
SqlServer存储过程,怎样把传入的字符串作为where条件?字符串传什么样,where后就是什么样。如下:ALTERPROCEDURE[dbo].[Standard...
Sql Server 存储过程,怎样把传入的字符串作为where条件?字符串传什么样,where后就是什么样。如下:
ALTER PROCEDURE [dbo].[Standard_GetBySomeCCS]
@str VARCHAR(100)
AS
BEGIN
SELECT
Id,
Foreword,
ApplyArea,
Format,
PageCount,
CCS
FROM Standard
WHERE XXXXXXXXXXXXXXXXXXX
就是where后面怎么写?
我在代码里调这个存储过程的时候,会把str传进来,我想让这个str整体作为where的查询条件,请问怎么写?
在线等。。。。
例子就是比如我会传一个 str = "CCS = 'C15' OR CCS = 'C12' OR CCS = 'C13' "
我想让这整个str作为查询条件。
而且我的str每次传的还不一样,是动态的。 展开
ALTER PROCEDURE [dbo].[Standard_GetBySomeCCS]
@str VARCHAR(100)
AS
BEGIN
SELECT
Id,
Foreword,
ApplyArea,
Format,
PageCount,
CCS
FROM Standard
WHERE XXXXXXXXXXXXXXXXXXX
就是where后面怎么写?
我在代码里调这个存储过程的时候,会把str传进来,我想让这个str整体作为where的查询条件,请问怎么写?
在线等。。。。
例子就是比如我会传一个 str = "CCS = 'C15' OR CCS = 'C12' OR CCS = 'C13' "
我想让这整个str作为查询条件。
而且我的str每次传的还不一样,是动态的。 展开
4个回答
展开全部
SQL 拼接字符串
把传入的字符串参数 作为where 后面的条件
如下列SQL:
create PROCEDURE [dbo].[Test]
@T nvarchar(50)=''--传入字符串参数
AS
BEGIN
declare @SQL nvarchar(max)
--char(10)换行符
set @SQL='select * from table '+Char(10)
set @SQL=@SQL+' where a='''+@T+''''
Print @SQL
--结果如下,假如转入参考为abc
--select * form table
--where a='abc'
--下面是执行拼接SQL
exec (@SQL)
return 0
end
展开全部
需要使用动态语句
例如:
DECLARE @参数 VARCHAR(1000)
SET @参数='ID=1'
PRINT 'select * from 表 where '+@参数
EXEC('select * from 表 where '+@参数)
例如:
DECLARE @参数 VARCHAR(1000)
SET @参数='ID=1'
PRINT 'select * from 表 where '+@参数
EXEC('select * from 表 where '+@参数)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ALTER PROCEDURE [dbo].[Standard_GetBySomeCCS]
@str VARCHAR(100)
AS
BEGIN
DECLARE @CCs_SQL NVARCHAR(1000)='';
IF @参数<>'' AND @参数 IS NOT NULL
BEGIN
SET @TIMESPAN_SQL=' ( 1<>1 ';
SELECT @CCs_SQL=@CCs_SQL+' OR '+@参数
SET @CCs_SQL=@CCs_SQL+') ';
exec('
SELECT
Id,
Foreword,
ApplyArea,
Format,
PageCount,
CCS
FROM Standard
WHERE '+@CCs_SQL+'
'
END
@str VARCHAR(100)
AS
BEGIN
DECLARE @CCs_SQL NVARCHAR(1000)='';
IF @参数<>'' AND @参数 IS NOT NULL
BEGIN
SET @TIMESPAN_SQL=' ( 1<>1 ';
SELECT @CCs_SQL=@CCs_SQL+' OR '+@参数
SET @CCs_SQL=@CCs_SQL+') ';
exec('
SELECT
Id,
Foreword,
ApplyArea,
Format,
PageCount,
CCS
FROM Standard
WHERE '+@CCs_SQL+'
'
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
declare @sql nvarchar(max)
set @sql='select .... where '+@str
exec(@sql)
set @sql='select .... where '+@str
exec(@sql)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询