2009-07-06 8 views
0

J'ai la requête suivante qui fonctionne très bien, mais je veux aussi obtenir des enregistrements en utilisant le mot-clé like. Ma requête est la suivante,Je veux obtenir des enregistrements en utilisant comme mot-clé

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 

Quelqu'un peut-il aider? Comment puis-je utiliser comme et je veux aussi l'utiliser comme un paramètre.

Répondre

2

Je pense que ce que vous demandez est: Comment utiliser la commande like dans sql?

Pour votre morceau de code, ajoutez un nouveau paramètre:

@SearchText nvarchar(100)

Remplacez ensuite:

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

avec

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

Pour plus d'informations regardez ici: http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

merci mon ami je l'ai eu travailler avec la syntaxe que vous m'avez montré –

0

Ne vous avez déjà utilisé comme dans:

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

Je ne sais pas quelle est la question ou si je ne comprenais pas complètement.

Questions connexes