0
使用SQL Server 2012 Express。 我有一個代表鍵/值對的表。 keycol是表格的PK。 我試圖找到最佳的方式來查詢表查找valcol,當查詢參數是在表中的兩個keycol值之間。 所以我想找到'a',如果我正在尋找keycol = 15,並且如果keycol = 20找到'b',如果keycol = 36找到'c'。PK值之間的SQL Server查詢優化?
;
with tblextr (keycol , valcol)
As
(
Select 10 , 'a'
Union All
Select 19 , 'a'
Union All
Select 20 , 'b'
Union All
Select 29 , 'b'
Union All
Select 30 , 'c'
Union All
Select 39 , 'c'
)
select valcol from tblextr
where keycol = (
select max(keycol)
from tblextr
where keycol <= 36
)
由於keycol已經是PK了,有沒有辦法比我有更好的寫SQL?我還有另外一個指標嗎?如果速度提高,我不介意使用更多的空間。這是一個查找表,因此行僅作爲刷新的一部分每月添加,並重新創建整個表。
謝謝。
如果你用'6'代替'36',會發生什麼?或者如果你有'136'? –
然後結果在兩種情況下都是空的,這是可以的。 – Snowy