我正在MS SQL Server 2008 R2中创建数据库视图。其中一个名为“Status”的输出列从几个不同的表中提取有关实体的信息,以生成报告给用户的字符串状态。
因此我创建了一个函数,它将实体ID作为唯一参数并返回nvarchar(MAX)状态。
首先检查实体是否已获批准。它作为批准它的人的用户名存储在数据库中。如果未获批准,则该值为NULL。
所以,我想做的伪代码是:
if entity is NOT approved
return "Pending"
else
begin
max = select MAX(value) from EntityStatus // several statuses may exist
status = select name from EntityStatus WHERE value = max
return status
end
我的当前问题是:如何选择'已批准'布尔值?
我对T-SQL编程很新(可能会显示),所以请随意提出其他方法来改进我的功能。
答案 0 :(得分:1)
if (select approver_username from approvals where entityid = @entityid) is null
return 'Pending'
else
begin
...
end
答案 1 :(得分:0)
试试这个
select city,isnull(city,'pending/unknown')city2 from authors