当前位置:首页 » 存储配置 » 存储过程多条件查询

存储过程多条件查询

发布时间: 2022-07-24 02:30:38

1. sql存储过程中如何实现多参数协调查询

定义5个参数,然后调用此存储过程的时候传参数的时候指定参数名称即可,传几个就是几个

2. 存储过程两表连接多条件查询语句怎样写

假设你的查询条件为infoTitle和InfoBody

那么存储过程如下:

createprocdbo.Usp_GetInfo
(
@infoTitleasvarchar(50)='',
@InfoBodyasvarchar(50)=''
)
as
begin
select
InfoTitle,InfoBody,tel,PubDate,linkMan,KindName
from
Info
innerjoinInfoKindsonInfo.InfoKindid=InfoKinds.InfoKindid
where
InfoTitlelike'%'+@InfoTitle+'%'
andInfoBodylike'%'+@InfoBody+'%'
end

执行或调用存储过程语句:

--一、查询全部
dbo.Usp_GetInfo
--二、按@infoTitle模糊查询
dbo.Usp_GetInfo@infoTitle='标题'
--三、按@InfoBody模糊查询
dbo.Usp_GetInfo@InfoBody='内容'
--四、按@infoTitle和@InfoBody模糊查询
dbo.Usp_GetInfo@infoTitle='标题',@InfoBody='内容'

3. 如何对存储过程返回的结果进行条件查询

很多人喜欢用存储过程实现一些数据的查询工作,假如客户端用户(是指使用这些存储过程的程序员)需要对得到的结果进行筛选,大多数的人将会无计可施,本文将根据一个实例介绍一种解决此问题的方法。 Create Table #TmpTable(FieldList) Insert Into #TmpTable Exec StoreProcereName ParameterList创建临时表语句中的字段列表FeildList需要和存储过程返回的字段顺序一致;ParameterList是存储过程要用到的参数。执行完之后,大家就可以使用Select语句对刚创建的临时表进行条件查询了。最后请不要忘记删除掉临时表。

4. 存储过程中的多条件查询语句怎么写

存储过程中的多条件查询语句怎么写
create proc dbo.Usp_GetInfo
(
@infoTitle as varchar(50)='',
@InfoBody as varchar(50)=''
)
as
begin
select
InfoTitle,InfoBody,tel,PubDate,linkMan,KindName
from
Info
inner join InfoKinds on Info.InfoKindid=InfoKinds.InfoKindid
where
InfoTitle like '%'+@InfoTitle+'%'
and InfoBody like '%'+@InfoBody+'%'
end

5. sql存储过程定义多条件查询加分页

给你一个强大至极的分页存储过程(输入对应的参加即可),以此共勉,希望你也能进步:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[Pagination]
@Page int = 1, -- 当前页码
@PageSize int = 10, -- 每页记录条数(页面大小)
@Table nvarchar(500), -- 表名或视图名,甚至可以是嵌套SQL:(Select * From Tab Where ID>1000) Tab
@Field nvarchar(800) = '*', -- 返回记录集字段名,","隔开,默认是"*"
@OrderBy nvarchar(100) = 'ID ASC', -- 排序规则
@Filter nvarchar(500), -- 过滤条件
@MaxPage smallint output, -- 执行结果 -1 error, 0 false, maxpage true
@TotalRow int output, -- 记录总数 /* 2007-07-12 22:11:00 update */
@Descript varchar(100) output -- 结果描述
AS
BEGIN

-- =============================================
-- Author: Jimmy.Yu
-- Create date: 2007-5-11
-- Description: SQL 2005 以上版本 通用分页存储过程
-- =============================================

Set ROWCOUNT @PageSize;

Set @Descript = 'successful';
-------------------参数检测----------------
IF LEN(RTRIM(LTRIM(@Table))) !> 0
Begin
Set @MaxPage = 0;
Set @Descript = 'table name is empty';
Return;
End

IF LEN(RTRIM(LTRIM(@OrderBy))) !> 0
Begin
Set @MaxPage = 0;
Set @Descript = 'order is empty';
Return;
End

IF ISNULL(@PageSize,0) <= 0
Begin
Set @MaxPage = 0;
Set @Descript = 'page size error';
Return;
End

IF ISNULL(@Page,0) <= 0
Begin
Set @MaxPage = 0;
Set @Descript = 'page error';
Return;
End
-------------------检测结束----------------

Begin Try
-- 整合SQL
Declare @SQL nvarchar(4000), @Portion nvarchar(4000);

Set @Portion = ' ROW_NUMBER() OVER (ORDER BY ' + @OrderBy + ') AS ROWNUM FROM ' + @Table;

Set @Portion = @Portion + (CASE WHEN LEN(@Filter) >= 1 THEN (' Where ' + @Filter + ') AS tab') ELSE (') AS tab') END);

Set @SQL = 'Select TOP(' + CAST(@PageSize AS nvarchar(8)) + ') ' + @Field + ' FROM (Select ' + @Field + ',' + @Portion;

Set @SQL = @SQL + ' Where tab.ROWNUM > ' + CAST((@Page-1)*@PageSize AS nvarchar(8));

-- 执行SQL, 取当前页记录集
Execute(@SQL);
--------------------------------------------------------------------

-- 整合SQL
Set @SQL = 'Set @Rows = (Select MAX(ROWNUM) FROM (Select' + @Portion + ')';

-- 执行SQL, 取最大页码
Execute sp_executesql @SQL, N'@Rows int output', @TotalRow output;
Set @MaxPage = (CASE WHEN (@TotalRow % @PageSize)<>0 THEN (@TotalRow / @PageSize + 1) ELSE (@TotalRow / @PageSize) END);
End Try
Begin Catch
-- 捕捉错误
Set @MaxPage = -1;
Set @Descript = 'error line: ' + CAST(ERROR_LINE() AS varchar(8)) + ', error number: ' + CAST(ERROR_NUMBER() AS varchar(8)) + ', error message: ' + ERROR_MESSAGE();
Return;
End Catch;

-- 执行成功
Return;
END

6. SQL的多条件查询的存储过程问题

第一个文本:输入材质。第二个文本框,输入最小价格。第三个文本框:输入最大价格。
然后按搜索按钮string
pm,cz,min,max;(接收输入的时候最大最小价格是string类型,数据库里的价格是int类型的,存储过程中要不要转换,后台程序中怎么转换)默认下拉框是请选择
输入情况例如:
P1,C1,1,1000
(筛选符合条件的)
P1,C1,1,没写
请选择,C1,没写,1000(意思是只有第二个和第四个有值)
根据输入的条件显示符合的信息(有一个条件就一个条件筛选,多个条件就多个条件来筛选)
问题:这样的存储过程应该怎么写(需要写好注释)补充:
表中字段
ID,品名,材质,价格,备注,其他
价格是
int类型
剩下的都是nvarchar类型

7. 存储过程条件查询

存储过程中的多条件查询语句怎么写
create proc dbo.Usp_GetInfo
(
@infoTitle as varchar(50)='',
@InfoBody as varchar(50)=''
)
as
begin
select
InfoTitle,InfoBody,tel,PubDate,linkMan,KindName
from
Info
inner join InfoKinds on Info.InfoKindid=InfoKinds.InfoKindid
where
InfoTitle like '%'+@InfoTitle+'%'
and InfoBody like '%'+@InfoBody+'%'
end

8. sqlserver中存储过程多条件组合查询

where="1=1"

if(war1!="")
{
where+=" and war1="+war1;
}

if(war2!="")
{
where+=" and war2="+war2;
}

string sql="select * from ss where "+where;

exec(sql)

9. sql 存储过程多条件查询

DECLARE @sign char(1)
DECLARE @SQL nvarchar(4000)
SET @sql='SELECT distinct isnull(pd.PatientGivenName,'') , isnull(pd.PatientFamilyName,'')+' '+isnull(pd.PatientMiddleName,'') FROM dbo.PatientDemographics pd where 1=1'

DECLARE @sign char(1)
SET @sign=','
DECLARE @SQL nvarchar(4000)
SET @sql='SELECT distinct isnull(pd.PatientGivenName,'')'+@sign+' isnull(pd.PatientFamilyName,'')+' '+isnull(pd.PatientMiddleName,'') FROM dbo.PatientDemographics pd where 1=1'
insert进我定义的一个表如下:
DECLARE @indextable TABLE(rowid INT IDENTITY(1,1),nid INT)
INSERT INTO @indextable(nid) --将符合的记录插入到临时表中
SELECT [ID]
FROM table1
Where 条件

热点内容
第三方服务器做海康存储怎么配置 发布:2024-10-07 00:23:38 浏览:116
文件夹两孔 发布:2024-10-06 23:48:53 浏览:352
ftp工具分析 发布:2024-10-06 23:48:51 浏览:158
服务器被游戏封机器码怎么办 发布:2024-10-06 23:46:10 浏览:161
股票java 发布:2024-10-06 23:38:46 浏览:291
安卓算法 发布:2024-10-06 23:14:20 浏览:184
域名访问404 发布:2024-10-06 23:08:52 浏览:708
访问笔录模版 发布:2024-10-06 22:36:54 浏览:142
多用途编程 发布:2024-10-06 22:35:58 浏览:618
msde2000数据库下载 发布:2024-10-06 22:33:35 浏览:45