是否有更短/更好的方法来编写此SQL语句?
编辑:内部sql select语句是占位符,实际语句比较复杂。
SELECT
CASE WHEN
ISNULL((SELECT TOP 1 x FROM y), '') = ''
THEN 'No'
ELSE 'Yes'
END AS BooleanValue
它感觉非常kludgey因为它将select语句的结果与null进行比较,然后如果为null则设置为空字符串;只是为了检查它是否为空字符串,并将其设置为实际需要的字符串:“是”或“否”字符串。
这是一种更清洁的方法。
SELECT
CASE WHEN
(SELECT TOP 1 x FROM y) IS NULL
THEN 'No'
ELSE 'Yes'
END AS BooleanValue
这将删除一个额外的命令,并应具有相同的输出。我刚刚在sql server 2012中测试过它。
SELECT ISNULL((SELECT TOP 1 'Yes' FROM x), 'No') as Boolean