0% found this document useful (0 votes)
3 views2 pages

Comma Seprated Search SP

The document contains a SQL script that constructs a dynamic search query based on user input. It processes a search string, splits it into terms, and builds conditions for various database fields using LIKE clauses. The script handles different search types and includes logic for handling NULL values and formatting output for specific fields.

Uploaded by

varun.mittal407
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views2 pages

Comma Seprated Search SP

The document contains a SQL script that constructs a dynamic search query based on user input. It processes a search string, splits it into terms, and builds conditions for various database fields using LIKE clauses. The script handles different search types and includes logic for handling NULL values and formatting output for specific fields.

Uploaded by

varun.mittal407
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

IF ISNULL(@sSearch, '') <> ''

BEGIN

SELECT @sSearch = REPLACE(@sSearch, '''', '''''')

SELECT @AddOnWhere += ' AND (1 <> 1 '

DECLARE @SearchTerms TABLE (SearchTerm NVARCHAR(255))


INSERT INTO @SearchTerms (SearchTerm)
SELECT value
FROM STRING_SPLIT(@sSearch, ',')

IF ISNULL(@iSearchType, 0) IN (0, 11)


BEGIN
SELECT @AddJoin += ''

-- Loop through the split search terms and apply the LIKE condition
DECLARE @Term NVARCHAR(255)
DECLARE search_cursor CURSOR FOR
SELECT SearchTerm FROM @SearchTerms
OPEN search_cursor
FETCH NEXT FROM search_cursor INTO @Term
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @AddOnWhere += ' OR BPO_BuyerPOList.nvBuyerPONo LIKE ''%' +
@Term + '%'' '
+ ' OR ISNULL(BPO_BuyerPOList.nvRevisionNo, '''') LIKE ''%' + @Term
+ '%'' '
+ ' OR BPO_BuyerPOList.nvIIPoNo LIKE ''%' + @Term + '%'' '
+ ' OR BPO_BuyerPOList.ID LIKE ''%' + @Term + '%'' '
FETCH NEXT FROM search_cursor INTO @Term
END
CLOSE search_cursor
DEALLOCATE search_cursor
END

IF ISNULL(@iSearchType, 0) IN (0, 21)


BEGIN

DECLARE search_cursor CURSOR FOR


SELECT SearchTerm FROM @SearchTerms
OPEN search_cursor
FETCH NEXT FROM search_cursor INTO @Term
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @AddOnWhere += ' OR BPO_BuyerPOHeader.nvStyleSet LIKE ''%' +
@Term + '%'' '
+ ' OR BPO_BuyerPOHeader.nvCustomerStyleRef LIKE ''%' + @Term +
'%'' '
+ ' OR BPO_BuyerPOHeader.nvCustomerStyleRef2 LIKE ''%' + @Term +
'%'' '
+ ' OR BPO_BuyerPOHeader.nvVendorStyleRef LIKE ''%' + @Term + '%''
'
+ ' OR BPO_BuyerPOHeader.nvUPCNo LIKE ''%' + @Term + '%'' '
+ ' OR BPO_BuyerPOHeader.nvCustomerStyleDescr LIKE ''%' + @Term +
'%'' '
+ ' OR ISNULL(HdrItm.nvStyleNo, '''') LIKE ''%' + @Term + '%'' '
+ ' OR ISNULL(HdrItm.nvStyleCode, '''') LIKE ''%' + @Term + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(HdrItm.nvStyleCode2, ''''))
LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(HdrItm.nvStyleBriefDescr,
'''')) LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(HdrItm.nvStyleDescr, ''''))
LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
+ ' OR ISNULL(DtlItm.nvStyleNo, '''') LIKE ''%' + @Term + '%'' '
+ ' OR ISNULL(DtlItm.nvStyleCode, '''') LIKE ''%' + @Term + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(DtlItm.nvStyleCode2, ''''))
LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(DtlItm.nvStyleBriefDescr,
'''')) LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
+ ' OR [dbo].[Get_FuzzyDescr](ISNULL(DtlItm.nvStyleDescr, ''''))
LIKE ''%' + [dbo].[Get_FuzzyDescr](@Term) + '%'' '
FETCH NEXT FROM search_cursor INTO @Term
END
CLOSE search_cursor
DEALLOCATE search_cursor
END

IF ISNULL(@iSearchType, 0) IN (0, 24)


BEGIN
-- Normal search for Packing (no comma-separated logic)
SELECT @AddOnWhere += ' OR
lTrim(RTrim(lTrim(RTrim(ISNULL(BPO_BuyerPOHeader.nvBarCodeCaption, ''''))) + '' ''+
lTrim(RTrim(ISNULL(BPO_BuyerPOHeader.nvUPCNo, ''''))))) LIKE ''%' + @sSearch + '%''
'
+ ' OR (CASE WHEN ISNULL(BPO_BuyerPOHeader.mCBM, 0) > 0 THEN
lTrim(RTrim(Str(ISNULL(BPO_BuyerPOHeader.mCBM, 0), 12, 3))) ELSE '''' END) LIKE
''%' + @sSearch + '%'' '
+ ' OR (CASE WHEN ISNULL(BPO_BuyerPOHeader.mWeight, 0) > 0 THEN
lTrim(RTrim(Str(ISNULL(BPO_BuyerPOHeader.mWeight, 0), 12, 3))) + '' '' + (CASE
ISNULL(BPO_BuyerPOHeader.siWeightUnit, 0) WHEN 1 THEN ''Lbs'' ELSE ''Kgs'' END)
ELSE '''' END) LIKE ''%' + @sSearch + '%'' '
+ ' OR (CASE LTRIM(RTRIM(ISNULL(BPO_BuyerPOHeader.nvOPDescr, '''')))
WHEN '''' THEN '''' ELSE Substring(ISNULL(BPO_BuyerPOHeader.nvOPDescr, ''''), 3,
100) + '' '' + (CASE Substring(ISNULL(BPO_BuyerPOHeader.nvOPDescr, ''''), 1, 1)
WHEN ''1'' THEN ''cm'' ELSE ''inches'' END) END) LIKE ''%' + @sSearch + '%'' '
END

SELECT @AddOnWhere += ' ) '


END

You might also like