"IS" SQL 列表达式中的服务器无法识别?
"IS" not recognized in SQL Server in column expression?
我的观点的第一行(查询?),基本上是这样做的:
SELECT TOP (100) PERCENT dbo.TableName.Field1
, dbo.TableName.Field2
, IIF(dbo.TableName.Field3 IS NOT NULL, 1, 0) AS SomeAlias
但出于某种原因,它不喜欢“IS”关键字并给我一个无法识别的错误,即使我在 WHERE 子句中放置了一个带有“IS NOT NULL”的随机字段,效果很好。我一直在 MS Access 中做这种事情,是否不允许使用表达式创建列?
IIF 中的条件应该不是问题。
您可以在此处查看 db<>fiddle here
没问题。
但您也可以使用 case
:
...
, case when dbo.TableName.Field3 IS NOT NULL then 1 else 0 end AS SomeAlias
您可以改为大小写。
SELECT TOP (100) PERCENT dbo.TableName.Field1
, dbo.TableName.Field2
, (case when dbo.TableName.Field3 IS NOT NULL then 1 else 0 end) AS SomeAlias
from dbo.TableName
我的观点的第一行(查询?),基本上是这样做的:
SELECT TOP (100) PERCENT dbo.TableName.Field1
, dbo.TableName.Field2
, IIF(dbo.TableName.Field3 IS NOT NULL, 1, 0) AS SomeAlias
但出于某种原因,它不喜欢“IS”关键字并给我一个无法识别的错误,即使我在 WHERE 子句中放置了一个带有“IS NOT NULL”的随机字段,效果很好。我一直在 MS Access 中做这种事情,是否不允许使用表达式创建列?
IIF 中的条件应该不是问题。
您可以在此处查看 db<>fiddle here 没问题。
但您也可以使用 case
:
...
, case when dbo.TableName.Field3 IS NOT NULL then 1 else 0 end AS SomeAlias
您可以改为大小写。
SELECT TOP (100) PERCENT dbo.TableName.Field1
, dbo.TableName.Field2
, (case when dbo.TableName.Field3 IS NOT NULL then 1 else 0 end) AS SomeAlias
from dbo.TableName