存儲過程多條件查詢
定義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  條件
