创建 SQL 服务器存储过程以像 "Contains"
Create SQL Server stored procedure to act like a "Contains"
我有一个存储过程,当前 return 值构成查询等于的列。
@CUST_NAME = CUST_NAME
我现在需要它更像(伪代码)
(column) CUST_NAME CONTAINS (variable) @CUST_NAME
所以基本上,如果搜索是 'smith',它将 return 列中的所有史密斯以及所有 'smithson'。
当前存储过程:
ALTER PROCEDURE [dbo].[spGet_Account_Numbers_From_Name]
@CUST_NAME AS VARCHAR(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 1
CAST(CAST([TAOAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS TA_ACCOUNT_NUMBER,
CAST(CAST([FTPAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS FTB_ACCOUNT_NUMBER,
[CUSTOMER_SSN]
FROM
[AccountConversion]
WHERE
@CUST_NAME = CUST_NAME
END
您不能使用 "CONTAINS" 关键字,除非该列是全文索引的。
如果你想进行部分字符串匹配,你可以这样做:
ALTER PROCEDURE [dbo].[spGet_Account_Numbers_From_Name] @CUST_NAME AS VARCHAR(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT
CAST(CAST([TAOAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS TA_ACCOUNT_NUMBER,
CAST(CAST([FTPAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS FTB_ACCOUNT_NUMBER,
[CUSTOMER_SSN]
FROM
[AccountConversion]
WHERE
CUST_NAME LIKE '%' + @CUST_NAME + '%'
END
我有一个存储过程,当前 return 值构成查询等于的列。
@CUST_NAME = CUST_NAME
我现在需要它更像(伪代码)
(column) CUST_NAME CONTAINS (variable) @CUST_NAME
所以基本上,如果搜索是 'smith',它将 return 列中的所有史密斯以及所有 'smithson'。
当前存储过程:
ALTER PROCEDURE [dbo].[spGet_Account_Numbers_From_Name]
@CUST_NAME AS VARCHAR(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP 1
CAST(CAST([TAOAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS TA_ACCOUNT_NUMBER,
CAST(CAST([FTPAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS FTB_ACCOUNT_NUMBER,
[CUSTOMER_SSN]
FROM
[AccountConversion]
WHERE
@CUST_NAME = CUST_NAME
END
您不能使用 "CONTAINS" 关键字,除非该列是全文索引的。
如果你想进行部分字符串匹配,你可以这样做:
ALTER PROCEDURE [dbo].[spGet_Account_Numbers_From_Name] @CUST_NAME AS VARCHAR(36)
AS
BEGIN
SET NOCOUNT ON;
SELECT
CAST(CAST([TAOAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS TA_ACCOUNT_NUMBER,
CAST(CAST([FTPAB_ACCOUNT_NUMBER] AS BIGINT) AS VARCHAR(20)) AS FTB_ACCOUNT_NUMBER,
[CUSTOMER_SSN]
FROM
[AccountConversion]
WHERE
CUST_NAME LIKE '%' + @CUST_NAME + '%'
END