SQL输出文本或日期取决于另一个字段

时间:2015-05-02 23:27:39

标签: sql casting case

我有一个日期字段,有时我想根据另一个字段中的值打印消息而不是日期。我试过这个:

select CASE WHEN isExofficio = 1 那么CAST('永不过期'为varchar(20)) ELSE boardDate 结束     来自tableName

我知道这不会按原样运行,但这正是我要做的 - 如果isExofficio = 1,则输出一条消息;否则输出日期。有任何想法吗? (对不起,我似乎仍然无法正确格式化!)

1 个答案:

答案 0 :(得分:0)

在任何一种情况下,它都必须返回相同的数据类型结果,因此您只需将日期转换为varchar,因此请尝试这种方式。

select
CASE WHEN isExofficio = 1
THEN CAST 'Never Expires' ELSE CONVERT(varchar,boardDate,101)
END from tableName