更短的 CASE ISNULL(qry, '')='' THEN 'no' ELSE 'yes' END

Shorter CASE ISNULL(qry, '')='' THEN 'no' ELSE 'yes' END

是否有 shorter/better 方式来编写此 SQL 语句?

编辑:里面的sqlselect语句是占位符,实际语句比较复杂。

SELECT
    CASE WHEN
        ISNULL((SELECT TOP 1 x FROM y), '') = ''
    THEN 'No'
    ELSE 'Yes'
    END AS BooleanValue

感觉很笨拙,因为它将select语句的结果与null进行比较,如果为null则设置为空字符串;只是为了检查它是否为空字符串,并将其设置为实际需要的值:'yes' 或 'no' 字符串。

这是一种更简洁的方法。

SELECT
    CASE WHEN
        (SELECT TOP 1 x FROM y) IS NULL
    THEN 'No'
    ELSE 'Yes'
    END AS BooleanValue

这删除了一个额外的命令并且应该有相同的输出。我刚刚在 sql 服务器 2012 中对其进行了测试。

SELECT ISNULL((SELECT TOP 1 'Yes' FROM x), 'No') as Boolean