多重查询的问题(100分)

  • 主题发起人 主题发起人 bzb
  • 开始时间 开始时间
B

bzb

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一个结果集中继续查询,如何实现。
delphi下的sql嵌套很难通过调试。
假如用视图的办法,建立一个临时视图,实现倒是可以,
但是如何判断sql库中有没有这个视图也是个问题。
这种方法是否好。
 
我想在一个结果集中继续查询,如何实现。
---select ...from (select ...
delphi下的sql嵌套很难通过调试。
---这是啥意思, 很好调试的呀
假如用视图的办法,建立一个临时视图,实现倒是可以,
但是如何判断sql库中有没有这个视图也是个问题。
---你自己建的视图还不知它是否存在?

这种方法是否好

---总之,如果SQL太复杂是可以采用视图
视图是什么还不是SELECT, 总是可以合并成一个复杂的SQL的
 
delphi下的sql嵌套很难通过调试???
确实很难以理解
举个例子好不好?
BTW:那些通用查询是怎么做到的???
关键是查询结构清晰
 
select a.field1 from (select field1,field2 from Table1 where field1 = '1') a
where a.field2 < '1965-01-01'

系统把 (select field1,field2 from Table1 where field1 = '1') 当为一个视图处理
 
在创建视图的时候,如果库中已经有了这个视图会出错!
如何避免这个问题?
有没有类似这样的
Create or Replace view ...
 
如果你用的SQL SERVER,可以用SQL语句检测视图是否存在——
select * from sysobjects where xtype='V' and name='tempview';
执行后判断。伪代码——
if not Query1.IsEmpty then drop view...;
create view;
 
检查是否有这个视图tempview;
try
query1.sql.add('select * from tempview');
query1.open;
...
except //没有
query1.sql.add('create view as select from ...');
query1.execsql;
...
end;
 
某些数据库引擎的确不支持 SQL 嵌套,不是 Delphi 的原因。SQL 语句也没有办法调试。
判断 Database 中有没有一个对象 Object(Table, View, ...),在 SQL Server 中可以
像这样写:if Exists (Select * From SysObjects Where ObjName = N'TableName') ...
具体语法可以用 Generate Script 得到。
 
请尽快结束你的贴子,否则我可要痛下杀手了^-^
 
多人接受答案了。
 
后退
顶部