Как выбрать, является ли столбец пустым или нет (как логическое значение) - PullRequest
0 голосов
/ 05 мая 2011

Я делаю представление базы данных в MS SQL Server 2008 R2. Один из выходных столбцов с именем «Status» извлекает информацию об объекте из нескольких разных таблиц, создавая состояние строки, которое сообщается пользователю.

Поэтому я создаю функцию, которая принимает идентификатор сущности в качестве единственного параметра и возвращает статус 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 ]

1 голос
/ 05 мая 2011
if (select approver_username from approvals where entityid = @entityid) is null
    return 'Pending'
else
begin
    ...
end
0 голосов
/ 05 мая 2011

попробуйте это

select city,isnull(city,'pending/unknown')city2 from authors
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...