我使用此查询创建了一个表NewAddData
select (
FirstName +' '+
coalesce(MiddleInitial + '''', '') +
' ' +
Lastname
) as Name
into NewAddData
from c_client c;
如果得到的话,我得到以下输出
Select * from NewAddData
我想获取其中带有撇号的名称。 Select语句的工作方式为
Select Name from AddData where Name like '%Paige%' and Name like '%''%'
我得到的输出为Paige A'Harrell
ALTER PROCEDURE GetName @ClientName Varchar(max)
AS
BEGIN
SET NOCOUNT ON;
Select Name from AddData where Name like '%@ClientName%' and Name like '%''%'
END
GO
我正在尝试在存储过程中执行此操作,但是它不起作用。 我想将名称的任何部分作为参数传递,如果它带有撇号,我想将该名称作为输出。 如果该名称没有撇号,则应显示该名称不存在。 请帮忙。
答案 0 :(得分:1)
将'%'+ @ ClientName +'%'替换为'%@ ClientName%'
ALTER PROCEDURE GetName @ClientName Varchar(max)
AS
BEGIN
SET NOCOUNT ON;
Select Name from AddData where Name like '%'+@ClientName+'%' and Name like '%''%'
END
GO
答案 1 :(得分:0)
ALTER PROCEDURE GetName @ClientName Varchar(max)
AS
BEGIN
SELECT NAME FROM ADDDATA WHERE NAME IN
(
SELECT TOKEN
FROM UDF_SPLITSTRING(@CLIENTNAME, ',')
)
END
GO
答案 2 :(得分:0)
您可以按照以下步骤进行操作:
ALTER PROCEDURE GetName @ClientName varchar(100)
AS
BEGIN
SET NOCOUNT ON;
if exists(select [name] from AddData where [name] LIKE concat('%', @ClientName, '%') and [name] like '%''%')
begin
select @ClientName
end
else
begin
select @ClientName + ' is not found'
end
END