[英]Compare String to Column in SQL Server, and Return a value
我不确定是否应该为此创建视图,存储过程或函数,但这是到目前为止的内容:
USE [HomeStorageQA2]
GO
DECLARE @SearchValue Varchar(255)
DEClare @Flag Varchar(255)
SET @Flag = NULL
SET @SearchValue = 'Inner point(s) > outer point(s);'
Declare @MainString Varchar(255)
Set @MainString = dbo.GetComments
if Charindex(@SearchValue,@MainString) > 0
begin
Set @Flag = 'True'
end
Select 'Flag' = @Flag
go
如果我Set @MainString = [Some value containing SearchValue]
,则查询返回True
。 我想将此查询用于TestComments.Comments
的行; 所以它是比较值Comments
到@SearchValue
,并返回真或假的每一行。
我已经有一个存储过程dbo.GetComments
,可以通过TestComments
表中名为SummaryID
的标识符来查找匹配TestComments
。
我的最终目标是要能够创建一个Select语句与三列数据: SummaryID
, Comments
,以及相应的@Flag
在所有行值TestComments
。 此语法是否可以创建所需的语法,以及如何将@MainString
设置为所需的值?
应该将其创建为存储过程,函数或视图吗? (我假设存储过程或函数)
当且仅当它上升到该级别所属的可重用性和令人垂涎的状态时,才将其设置为proc / fnc。 如果您不知道区别,那么答案是否定的。 这很可能是胡言乱语,不值得得到这种地位,除非您想要一种疯狂地朝着不可避免的脸庞轻抚的系统
这是存储过程的版本:
CREATE PROCEDURE FindMatches
@searchValue varchar(MAX)
AS
BEGIN
SELECT SummaryID
, Comments
, CASE
WHEN CHARINDEX(@searchValue, Comments) > 0 THEN 'True'
ELSE 'False'
END AS Flag
FROM TestComments
END
例如,您可以创建一个返回bit的标量函数。 它是这样完成的:
select SummaryID, Comments, dbo.FunctionName(Comments, @searchString)
from TestComments
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.