我在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
。
答案 0 :(得分:3)
一个问题是,您需要在视图中命名列。不命名该列会给出一个非常清晰的错误消息:
消息4511的16级状态1线路2
创建视图或函数失败,因为未为列1指定任何列名。
使用名称很容易解决:
CREATE VIEW v as
SELECT IIF(500<1000, 'YES', 'NO') as x;
Here是db <>小提琴。
答案 1 :(得分:0)
我无法重新创建您的问题,它在SQL Server 2017(Express)上对我来说正常工作
function ListFile1
dirName = '...';
files = dir(fullfile(dirName, '*.txt'));
files = {files.name};
fidEmpty = fopen(sprintf('output_empty_files.txt'), 'w+t');
fidNonempty = fopen(sprintf('output_nonempty_files.txt'), 'w+t');
for iFile = 1:numel(files)
content = fileread(files{iFile})
if (isempty(content))
fprintf(fidEmpty, '%s\n', files{iFile});
else
fprintf(fidNonempty, '%s\n', files{iFile});
end
end
fclose(fidEmpty);
fclose(fidNonempty);
结果:
CREATE VIEW queryTest
AS SELECT
IIF(500 < 1000, 'YES', 'NO') as yn;
select * from querytest;
请注意,我建议将yn
--
YES
添加到view命令中。