Utilisation de SQL Server 2012.
sur notre page Web, nous avons plusieurs textes de texte. L'utilisateur peut entrer et une et cliquez sur Rechercher ou entrer dans le couple de la zone de texte, puis cliquez sur Rechercher ... P>
échantillon t-sql: p> si identique ici: Si le nom de famille n'est pas entré dans la zone de texte, je ne veux pas que ce soit inclure dans le ... et ainsi de suite sur P> problème: toutes ces tables contiennent plus d'un million de lignes, donc je ne peux pas utiliser l'énoncé de cas dans où la clause due à l'impact de la performance p> existe donc une autre approche que je peux prendre pour résoudre ce problème? p> p> @firstname code> n'est pas entré dans la zone de texte, puis je ne le veux pas faire partie du où code> clause p> où code> clause p>
3 Réponses :
Quelque chose comme ça fonctionnera pour vous.
SELECT FirstName, LastName, Address1, EmployeeCode, OtherFields FROM SomeTable WHERE ((@FirstName IS NULL) OR ( FirstName = @FirstName)) AND ((@LastName IS NULL) OR ( LastName = @LastName)) AND ((@Address1 IS NULL) OR ( Address1 = @Address1)) AND ((@EmployeeCode IS NULL) OR ( EmployeeCode = @EmployeeCode))
J'ai trouvé un bon article basé sur cette solution SOMMARSKOG.SE/DYN-SEARCH-2008.HTML < / a>
Vous pouvez obtenir le même résultat en utilisant une recherche en texte intégral. Ensuite, vous n'avez pas besoin de créer également une carrière dynamique. Et la recherche est assez rapide en raison de celui-ci en utilisant un service différent.
Tout d'abord, vous devez créer un FulltextCatalog, puis ajouter des tables et des colonnes à celui-ci ( https://docs.microsoft.com/en-us/sql/relational-database/ Recherche / Text-Text-Search? Vue = SQL-Server-Ver15 ) P>
J'ai utilisé AventureWorks DB pour écrire une démonstration. Vous pouvez convertir ce code en fonction de votre table et de vos colonnes. Je viens d'ajouter 3 colonnes ici et vous pouvez ajouter toutes vos colonnes au texte intégral. P> Vous pouvez commander vos résultats en utilisant du poids ( SQL Server pondéré Texte intégral sur a >) p> p>
Fulltext recherche une très bonne idée, mais vous devriez essayer cette requête dans la requête dynamique pour donner un résultat de sélection.