我在SQL Server 2017中构建了一个SQL查询,如下所示:
SELECT IIF(500 < 1000, 'YES', 'NO');
虽然这在普通查询中有效,但我似乎无法在 SQL Server 视图中使用它。它会抛出一个错误,指出无法识别"<"。所有其他运算符也是如此。为什么我不能在视图中使用它?
编辑
CREATE VIEW queryTest
AS
SELECT IIF(500 < 1000, 'YES', 'NO');
尽管 SQL Server Management Studio 在单击视图上的"设计"时会引发错误,但您仍然可以针对它运行Selects
。
一个问题是您需要命名视图中的列。 不命名列会给出一个非常清晰的错误消息:
Msg 4511 级别 16 状态 1 行 2
创建视图或函数失败,因为没有为列 1 指定列名。
这很容易用一个名字来修复:
CREATE VIEW v as
SELECT IIF(500<1000, 'YES', 'NO') as x;
这是一个数据库<>小提琴。
我无法重现您的问题,它在SQL Server 2017(Express(上对我来说工作正常
CREATE VIEW queryTest
AS SELECT
IIF(500 < 1000, 'YES', 'NO') as yn;
select * from querytest;
结果:
yn
--
YES
请注意,我按照另一张海报的建议将as yn
添加到视图命令中。