更短的 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
是否有 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