Как произвести булевскую переменную в T-SQL на основе содержания столбца?

typedef typename Tail::inUnion dummy;

Однако я не уверен, что реализация inUnion верна. Если я правильно понимаю, этот класс не должен быть создан, поэтому вкладка «fail» никогда не будет автоматически терпеть неудачу. Возможно, было бы лучше указать, находится ли тип в объединении или нет с простым булевым значением.

template  struct Contains;

template 
struct Contains >
{
    enum { result = Contains::result };
};

template 
struct Contains >
{
    enum { result = true };
};

template 
struct Contains
{
    enum { result = false };
};

PS: Посмотрите на Boost :: Variant

PS2: посмотрите на typelists , особенно в книге Андрея Александреску: Modern C ++ Design

49
задан slartidan 24 January 2019 в 03:41
поделиться

2 ответа

Необходимо использовать оператор CASE для этого:

SELECT CASE WHEN columnName IS NULL THEN 'false' ELSE 'true' END FROM tableName;
72
ответ дан Adam Bellaire 7 November 2019 в 11:25
поделиться

для столбца в представлении можно использовать что-то как

CASE WHEN ColumnName is not null THEN 'True' ELSE 'False' END

или в операторе

SELECT 
s.ID,
s.[Name],
CASE WHEN s.AchievedDate is not null THEN 'True' ELSE 'False' END [IsAchieved]
FROM Schools s

, или для последующей обработки впоследствии я лично использовал бы

SELECT 
s.ID,
s.[Name],
CASE WHEN s.AchievedDate is not null THEN 1 ELSE 0 END [IsAchieved]
FROM Schools s
9
ответ дан Arion 7 November 2019 в 11:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: