1
存储在搜索内容中程序NormalizeChars我想使用此过程如何使用存储过程
ALTER PROCEDURE normalizeChars
(@NAME NVARCHAR(100))
AS
BEGIN
DECLARE @TempString NVARCHAR(100)
SET @TempString = @NAME
SET @TempString = LOWER(@TempString)
SET @TempString = REPLACE(@TempString,'à', 'a')
SET @TempString = REPLACE(@TempString,'è', 'e')
SET @TempString = REPLACE(@TempString,'é', 'e')
SET @TempString = REPLACE(@TempString,'ì', 'i')
SET @TempString = REPLACE(@TempString,'ò', 'o')
SET @TempString = REPLACE(@TempString,'ù', 'u')
SET @TempString = REPLACE(@TempString,'ç', 'c')
SET @TempString = REPLACE(@TempString,'''', '')
SET @TempString = REPLACE(@TempString,'`', '')
SET @TempString = REPLACE(@TempString,'-', '')
SET @TempString = REPLACE(@TempString,'ά','α')
SET @TempString = REPLACE(@TempString,'έ','ε')
SET @TempString = REPLACE(@TempString,'ί','ι')
SET @TempString = REPLACE(@TempString,'ό','ο')
SET @TempString = REPLACE(@TempString,'ή','η')
SET @TempString = REPLACE(@TempString,'ύ','υ')
RETURN @TempString
END
on ProductsName and ProductsDesc
是可能,如何这个功能
ALTER PROCEDURE [dbo].[SearchWord] (@Word NVARCHAR(50),
@PageNumber INT,
@ProductsPerPage INT,
@HowManyResults INT OUTPUT)
AS
SET @Word = '%' + RTRIM(@Word) + '%';
DECLARE @Results TABLE (
ProductsId INT,
ProductsCode NVARCHAR(250),
ProductsDesc NVARCHAR(MAX),
ProductsIngredients NVARCHAR(MAX),
ProductsName NVARCHAR(250),
ProductsPhoto NVARCHAR(MAX),
ProductsPrice MONEY,
ProductsWeight2 FLOAT,
RowNumber INT)
-- Obtain the matching products
INSERT INTO @Results
SELECT DISTINCT T1.ProductsID,
T1.ProductsCode,
LOWER(T1.ProductsDesc) asProductsDesc,
T1.ProductsIngredients,
LOWER(T1.ProductsName) AS ProductsName,
T1.ProductsPhoto,
T1.ProductsPrice,
T1.ProductsWeight2,
ROW_NUMBER() OVER(ORDER BY T1.ProductsName) RowNumber
FROM (SELECT ProductsID,
ProductsCode,
LOWER(ProductsDesc) AS ProductsDesc,
ProductsIngredients,
LOWER(ProductsName) AS ProductsName,
ProductsPhoto,
ProductsPrice,
ProductsWeight2
FROM Products
WHERE ProductsName LIKE @Word) AS T1
FULL OUTER JOIN (SELECT *
FROM Products
WHERE ProductsDesc LIKE @Word) AS T2
ON T1.ProductsID = T2.ProductsID
ORDER BY T1.ProductsPrice
DELETE FROM @Results
WHERE NULLIF([ProductsName], '') IS NULL
SELECT @HowManyResults = COUNT(*)
FROM @Results
INSERT INTO @Results
SELECT DISTINCT ProductsId,
ProductsCode,
ProductsDesc,
ProductsIngredients,
LOWER(ProductsName) AS ProductsName,
ProductsPhoto,
ProductsPrice,
ProductsWeight2,
RowNumber
FROM @Results
SELECT DISTINCT ProductsId,
ProductsCode,
ProductsDesc,
ProductsIngredients,
LOWER(ProductsName) AS ProductsName,
ProductsPhoto,
ProductsPrice,
ProductsWeight2,
RowNumber
FROM @Results R
WHERE R.RowNumber > (@PageNumber - 1) * @ProductsPerPage
AND R.RowNumber <= @PageNumber * @ProductsPerPage
ORDER BY R.ProductsPrice ASC
删除变音符号?
除删除变音符号的剩余3个字符,如何对搜索过程中指定排序顺序? – 2011-03-28 00:45:27
你的'normalizeChars'过程需要是一个标量UDF(程序不能像这样返回字符串)。但我同意@米奇。 Accent Insensitive整理子句不会为你工作吗? – 2011-03-28 01:00:23
如何指定不区分变音的对比,我认为我有。我已经指定了一个列的通风口,我没有检查字典复选框中的口音。 – ailatzis 2011-03-28 01:12:34