簡體   English   中英

SQL:創建字符串數組並查詢=像數組中的所有字符串一樣

[英]SQL: creating a string array and query = like all strings in array

我有SQL Server 2005報表,該報表在查詢客戶名稱的查詢字符串中采用參數。 問題是有些客戶喜歡在中間加上一個大寫字母,因此當用戶“ John Smith”使用該字母時,不會出現“ John Q. Smith”。

僅使用sql,我將如何通過空格將字符串拆分為數組,然后搜索與數組中每個字符串匹配的結果的記錄?

您可以使用用戶定義的拆分功能(例如此處的功能),並使用類似以下內容的功能:

SELECT *
FROM SomeTable t
WHERE NOT EXISTS (SELECT * FROM dbo.Split('John Smith', ' ') s WHERE t.NameColumn NOT LIKE '%' + s.Data + '%')

您需要查看它如何為您執行

編輯:原始版本沒有滿足您的要求-我掩蓋了您希望在所有零件上都匹配的事實,而它會返回所有“約翰”和所有“史密斯”。 已更正以匹配所有零件。

試試這個SQL Server 2005

DECLARE @UserName VARCHAR(MAX)

SELECT @UserName = 'John Smit'

DECLARE @User TABLE(
        UserName VARCHAR(MAX)
)

INSERT INTO @User (UserName) SELECT 'John Smit'
INSERT INTO @User (UserName) SELECT 'John Q. Smit'

SELECT  *
FROM    @User
WHERE   UserName LIKE REPLACE(@UserName, ' ', '%')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM