2011-04-01 89 views
-2

请查看此查询。如何在select语句中声明变量

select name form table 

假设这返回100个名称记录。

我要存储在变量中的每个记录,然后在另一个选择

statement.Perhaps我有一个内部的选择做使用这个变量,但我不知道怎么办。

这怎么可能?

我正在处理复杂联接的三个复杂查询我使用产品代码并将它们传递给查询。如果第一个查询返回结果正常,否则我将第二个查询转到第三个on.I已经在c#非常容易使用循环,但它需要非常多的时间(对于7000条记录,大约需要5分钟) 现在,我将把代码存储在变量中,并将它传递给SQL中的第一个查询,如果计数结果大于0,第二个到第三个。因此,我将遍历所有productCode记录。 `select * from productsale where productname like'%';

+0

发布查询,我确定它可以在没有游标的情况下完成 – Magnus 2011-04-01 07:33:22

+0

2 downvotes?我见过很多更糟糕的问题!请解释一下,这样我们都可以学习'正确的方式'! Hmphh! ;-) – shellter 2011-04-01 14:17:25

+0

我不确定您发布的最后一行。 select * from pSales其中Pname就像'%'..这是那里的故意空间吗?所以你在寻找Pname以空格char开头的记录? – shellter 2011-04-01 14:21:20

回答

1

是不是使用JOIN的原因?这通常是使用一个表中的值从其他表中提取值的最佳方法。

喜欢的东西

select name , dept from name_table nt, dept_table dt 
    where nt.name = dt.name 

否则你打算使用游标。网上有很多优秀的教程,你可能想要找到一个特定于你正在使用的数据库版本的教程。

我希望这会有所帮助。

+0

我觉得光标是不错的选择让我检查一下。 – 2011-04-01 06:33:31

+0

@ Zain:您需要将您的问题标记为C#以获得针对该环境的最佳建议。 – shellter 2011-04-01 06:37:27

+3

@Zain光标几乎从来都不是一个好的选择,除非你知道它不是别的方法。让数据库做它最擅长的,基于集合的查询。 – 2011-04-01 07:32:30