2011-09-10 68 views
1

我想沿着SQL其中從一個查詢的計算值條款

select * from table where column < myValue線做一些事情,

myValue我怎樣才能結合這些?

我試過了,但沒有成功。

+0

2個不同的表或相同?我假設myValue是數字字段? – ingo

+0

@ingo:同一張表。實際上,這對於手頭的問題是一個小小的簡化。該列是日期時間列,所以值也應該是。 – user420667

回答

2

這樣的事情呢?

declare @myValue int -- value type 
select top(1) @myValue = myValue from table where id = @id --there should only be one. 
select * from table where column < ISNULL(@myValue,0); 
+0

+1這工作,謝謝。 – user420667

+0

沒問題!很高興我能幫上忙。 =) – zSynopsis

2

一個簡單的子查詢應該沒問題。

select * from table where column < (select myValue from table where id = @id LIMIT 1) 
+0

由於某種原因,這並不適合我。我想也許是因爲myValue和column是真的是同一個列名。另外,它不喜歡限制語法。 – user420667

+0

完全可能:)你能否提供示例表格和列名稱,我會一起爲你工作? – Joe

+0

@ user420667:可能不工作,因爲你使用的是sqlserver,這個語法是針對mysql的(sqlserver不具有「限制」,而是使用top 1) – Iridio

3

我會使用JOIN。

select t1.* from mytable as t1 
join mytable as t2 on t1.column < t2.myValue 
where t2.id = @id 
+0

+1這工作,謝謝。 – user420667