Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询-我可以在SELECT子句中使用LEN进行比较吗?_Sql_Sql Server_Tsql_Sql Server 2008_Select - Fatal编程技术网

SQL查询-我可以在SELECT子句中使用LEN进行比较吗?

SQL查询-我可以在SELECT子句中使用LEN进行比较吗?,sql,sql-server,tsql,sql-server-2008,select,Sql,Sql Server,Tsql,Sql Server 2008,Select,我基本上想这样做: SELECT HasComments = CASE (LEN(Comments) > 1) WHEN 1 THEN 1 ELSE 0 END FROM TableName 换句话说,返回一个布尔值,告诉我注释的长度是否大于1。这给了我一个语法错误 我怎样才能做到这一点呢?更好的方法是将注释设置为空并检查它。然后可以利用索引,而不是表扫描LEN()将导致的。您在和结束时缺少 SELECT HasComments = CASE WHEN LEN(Comments) &g

我基本上想这样做:

SELECT HasComments = CASE (LEN(Comments) > 1) WHEN 1 THEN 1 ELSE 0 END FROM TableName
换句话说,返回一个布尔值,告诉我注释的长度是否大于1。这给了我一个语法错误


我怎样才能做到这一点呢?

更好的方法是将注释设置为空并检查它。然后可以利用索引,而不是表扫描LEN()将导致的。

您在
结束时缺少

SELECT  HasComments = CASE WHEN LEN(Comments) > 1 THEN 1 ELSE 0 END
FROM    TableName
SELECT HasComments = CASE WHEN (LEN(Comments) > 1) WHEN 1 THEN 1 ELSE 0 END
 FROM TableName

由于没有WHERE子句,因此很可能返回一列数据:

SELECT  CASE WHEN LEN(Comments) > 1 THEN 1 ELSE 0 END as 'HasComments'
FROM    TableName 

所以我把比较放错地方了。明白了。谢谢@Quassnoi!