2011-04-01 88 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