2009-07-06 5 views
0

Ich habe die folgende Abfrage, die funktioniert gut, aber ich möchte auch Datensätze mit den gleichen Schlüsselwort erhalten. Meine Abfrage lautet wie folgt:ich möchte Datensätze mit Verwendung von wie Stichwort

USE [POBox] 
GO 
/****** Object: StoredProcedure [dbo].[test] Script Date: 07/06/2009 12:55:39 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[test] --'DateTime','1','10' 
(
@p_SortExpression NVARCHAR(100), 
@p_StartIndex INT, 
@p_MaxRows INT 
) 
AS 
SET NOCOUNT ON; 
IF LEN(@p_SortExpression)= 0 
SET @p_SortExpression = 'DateTime DESC' 

DECLARE @Sql NVARCHAR(4000) 
SET @Sql ='SELECT ID, DateTime, Subject, CreatedBy, ToReceipientID , ReceiverStatus 
      FROM 
      (
      SELECT ID, DateTime, Subject,CreatedBy, ToReceipientID, ReceiverStatus, 
      ROW_NUMBER() OVER(ORDER BY ' + @p_SortExpression + ') AS Indexing 
      FROM ComposeMail 
      WHERE (Subject Like '%+ test +%') 
      ) 
      AS NewDataTable 
      WHERE Indexing > '+ CONVERT(NVARCHAR(10), @p_StartIndex) + ' AND Indexing<=(' + CONVERT (NVARCHAR(10),@p_StartIndex)+'+'+ CONVERT(NVARCHAR(10),@p_MaxRows)+')' 

      EXEC sp_executesql @sql 

Kann jemand helfen? Wie benutze ich gerne und ich möchte es auch als Parameter verwenden.

Antwort

2

Ich denke, was Sie fragen ist: Wie verwende ich den gleichen Befehl in SQL?

Für Ihr Stück Code, einen neuen Parameter hinzuzufügen:

@SearchText nvarchar(100)

dann ersetzen:

WHERE (Subject Like '%+ test +%')

mit

WHERE Subject (Like ''%'+ ISNULL(test, '') +'%''')

Für weitere Informationen schaue hier: http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

danke dir freund ich habe es funktioniert mit der Syntax, die Sie mir gezeigt haben –

0

Sie nicht bereits wie in verwendet haben:

WHERE (Subject Like '%+ test +%')

nicht sicher, was die Frage ist, oder wenn ich es nicht ganz verstehen.

Verwandte Themen