如何选择列是否为空(作为布尔值)

时间:2011-05-05 14:00:02

标签: sql-server tsql

我正在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编程很新(可能会显示),所以请随意提出其他方法来改进我的功能。

2 个答案:

答案 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
相关问题