我有一个CTE返回多行的查询,我想为返回的每一行执行一个函数.有可能,我在google上查了一下,它说使用临时表来填充结果.我只是想确认一下
with job_list as (  select JOB_ID,CREATED_DATE from job_table)  ,
app_list as (select APP_ID from job_list jobs, dbo.fnGetApp(jobs.JOB_ID,9))
select * from job_list, app_list 
这不是确切的查询,我已经简化了解我面临的问题.
dbo.fnGetApp是一个函数,它接受两个参数varchar和int并返回一个列的表(varchar APP_ID)
错误 - 无法绑定多部分标识符"jobs.JOB_ID".
我想为job_listCTE 返回的每一行运行该函数,并将结果用作CTE另一个使用两者的查询CTEs
谢谢大卫
我最近一直在使用数据库,在此之前我正在开发不使用数据库的独立组件.通过所有数据库工作,我遇到了一些问题.为什么数据库查询比从文件中检索编程语言数据更快.
进一步阐述我的问题 -
假设我有一个名为Employee的表,其中包含名称,ID,DOB,电子邮件和性别字段.为简单起见,我们还假设它们都是固定长度的字符串,并且它们没有任何索引或主键或任何其他约束.
想象一下,我们在表中有100万行数据.在一天结束时,该表将存储在磁盘上的某个位置.当我写一个查询选择姓名,来自员工的ID,其中DOB ="12/12/1985",DBMS从文件中获取数据,处理它,过滤它并给我一个结果,这是100万的一个子集数据行.
现在,假设我在平面文件中存储相同的100万行,为简单起见,每个字段类似地是固定长度字符串.数据在磁盘上的文件中可用.当我用C++或C或C#或Java编写程序并执行相同的任务,找到DOB ="12/12/1985"的名称和ID时,我将按记录读取文件记录并检查每行数据如果DOB ="12/12/1985",如果它匹配则我存储该行给用户.
与SQL查询返回结果的速度相比,程序执行此方法的速度太慢.
我假设DBMS也是用某种编程语言编写的,并且还有一个解析查询的额外开销,而不是.
那么在DBMS中发生什么使得检索数据比通过编程语言更快?
如果这个问题在这个论坛上不合适,请删除,但请给我一些指示,以便我找到答案.
我使用SQL Server,如果有任何帮助.
我的机器上没有安装Lotus Notes.我可以访问的共享驱动器上有一个Notes数据库.我在Win 7 32位机器上安装了NotesSQL驱动程序8.5.1.在安装过程中,第一条消息类似于"未找到本地Notes数据库".我继续安装.
安装后,我打开了ODBC管理器,未列出NotesSQL驱动程序.
这样做的目的是使用Excel连接到Notes数据库并导出excel文件中的数据.
要添加,有一个名为NSQLE32.exe的文件.从命令提示符执行此操作时没有任何反应.这个exe做了什么以及如何使用它?
我究竟做错了什么?我想将数据导入excel文件.
谢谢.