0
我有一个列的公民状态比int值数据类型的值为0-4。 0单身,1已婚,等等。函数返回的值超过1个用于非组选择语句的值
我希望列显示状态代表他们的数字,所以我做了一个函数,测试该值并返回等效的字符串状态值。
CREATE function civilStatus
(
@status int
)
RETURNS varchar(50)
AS
BEGIN
DECLARE @result_status varchar(50)
SELECT @result_status = (
SELECT CONVERT(varchar,(CASE Civil
WHEN 0 THEN 'Single'
WHEN 1 THEN 'Married'
WHEN 2 THEN 'Separated'
WHEN 3 THEN 'Divorced'
WHEN 4 THEN 'Windowed'
END))
FROM UserInfo)
RETURN @result_status
和我做了一个存储过程,将显示表中的所有行,但替换其中的参数是什么号码的婚姻状况该行持有该函数的婚姻状况。
CREATE PROCEDURE [dbo].DisplayUsers
\t
AS
\t SELECT Firstname,
Lastname,
City,
Country,
([dbo].civilStatus(Civil)) AS "Civil Status"
FROM UserInfo
但结果不是我所期待。该函数返回一个对象中所有行的所有值,该对象返回有关返回多个值的子查询的错误。 如何返回每行的值?
给出输入为整数 – mohan111
你是什么意思? – ejmtv
dbo.civil(1)AS“Civil Status” – mohan111