Sql server 将SQL Server存储过程结果与其他文本连接起来
我希望以尽可能简单的方式将存储过程的结果与其他文本连接起来 大致如下: 存储过程:Sql server 将SQL Server存储过程结果与其他文本连接起来,sql-server,stored-procedures,concatenation,Sql Server,Stored Procedures,Concatenation,我希望以尽可能简单的方式将存储过程的结果与其他文本连接起来 大致如下: 存储过程: CREATE PROCEDURE [dbo].[sp_UserFriendlyText] @Text varchar(100) AS BEGIN SELECT CASE @Text WHEN 'Foo' THEN 'Beginning' WHEN 'bar' THEN 'End' ELSE 'Text Not Found' END END 可以这样引用: DECLARE @Var1
CREATE PROCEDURE [dbo].[sp_UserFriendlyText] @Text varchar(100)
AS
BEGIN
SELECT CASE @Text
WHEN 'Foo' THEN 'Beginning'
WHEN 'bar' THEN 'End'
ELSE 'Text Not Found'
END
END
可以这样引用:
DECLARE @Var1 varchar(100)
SET @Var1 = 'Foo'
EXEC dbo.sp_UserFriendlyText @Var1 + ' is the best'
期望的结果是“开始是最好的”
它抱怨我的语法不正确。我尝试在exec语句周围添加括号以创建优先级,但仍然不起作用
因为存储过程将在多个查询中被引用,所以如果可能的话,我希望在不使用输出声明的情况下运行它(只是为了让事情更干净)
系统是SQL Server 2008 R2
谢谢 我认为在这种情况下,UDF是一个更好的选择,因为它的语法最简洁
CREATE FUNCTION [dbo].[udf_UserFriendlyText](@Text VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ReturnvValue VARCHAR(100)
SELECT @ReturnvValue = CASE @Text
WHEN 'Foo' THEN 'Beginning'
WHEN 'bar' THEN 'End'
ELSE 'Text Not Found'
END
RETURN @ReturnvValue
END
GO
然后打电话给
DECLARE @Var1 VARCHAR(100)
SET @Var1 = 'Foo'
SET @Var1 = dbo.udf_UserFriendlyText(@Var1) + ' is the best'
SELECT @Var1
甚至没有想过使用UDF,但它干净简单。完美的