小编dav*_*ell的帖子

对于从另一个CTE返回的每一行,在CTE内调用用户定义的函数

我有一个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 
Run Code Online (Sandbox Code Playgroud)

这不是确切的查询,我已经简化了解我面临的问题.

dbo.fnGetApp是一个函数,它接受两个参数varchar和int并返回一个列的表(varchar APP_ID)

错误 - 无法绑定多部分标识符"jobs.JOB_ID".

我想为job_listCTE 返回的每一行运行该函数,并将结果用作CTE另一个使用两者的查询CTEs

谢谢大卫

t-sql sql-server-2008

2
推荐指数
1
解决办法
2299
查看次数

数据检索 - 数据库VS编程语言

我最近一直在使用数据库,在此之前我正在开发不使用数据库的独立组件.通过所有数据库工作,我遇到了一些问题.为什么数据库查询比从文件中检索编程语言数据更快.

进一步阐述我的问题 -

假设我有一个名为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,如果有任何帮助.

rdbms programming-languages

2
推荐指数
1
解决办法
854
查看次数

没有本地Notes数据库的Lotus NotesSQL驱动程序

我的机器上没有安装Lotus Notes.我可以访问的共享驱动器上有一个Notes数据库.我在Win 7 32位机器上安装了NotesSQL驱动程序8.5.1.在安装过程中,第一条消息类似于"未找到本地Notes数据库".我继续安装.

安装后,我打开了ODBC管理器,未列出NotesSQL驱动程序.

这样做的目的是使用Excel连接到Notes数据库并导出excel文件中的数据.

要添加,有一个名为NSQLE32.exe的文件.从命令提示符执行此操作时没有任何反应.这个exe做了什么以及如何使用它?

我究竟做错了什么?我想将数据导入excel文件.

谢谢.

odbc lotus-notes

1
推荐指数
1
解决办法
1534
查看次数