1

私はこのコードをSQLで書いています:

alter proc verfinanfiltrado(@valor smallmoney) as
select idconta,vencimento,historico,original,formpagto,planoconta,clifor
from financeiro where original like @valor

この手順は機能します、私は次のようなものを書きたいです:

alter proc verfinanfiltrado(@valor smallmoney) as
select idconta,vencimento,historico,original,formpagto,planoconta,clifor
from financeiro where original like  % @valor % 

例:プロシージャは746.06で機能しますが、746.06、746.10、748.12のように、746で始まるすべての値を表示したいと思います。

そしてnvarcharの場合??

 alter proc verfinanfiltrado(@histo smallmoney) as
select idconta,vencimento,historico,original,formpagto,planoconta,clifor
from financeiro where historico  like  % @histo % 
4

3 に答える 3

2

(文字列変換または丸めを介して)列を変換すると、インデックスを使用できなくなります。しないでください。その代わり...

from financeiro where @value <= original and original < @value + 1
于 2013-02-21T20:09:55.967 に答える
1
WHERE original >= ROUND(@valor,0,1) AND original < ROUND(@valor,0,1) + 1

ちなみに、元の問題へのコメントにある xQberts ソリューションも機能しますが、これは検索可能であるため、元の問題の任意のインデックスから利益を得ることができます

于 2013-02-21T20:23:57.607 に答える
0

私はこのprocで解決しました

alter proc vencevalor (@valor smallmoney)as
select idconta,vencimento,pagamento,historico,original,formpagto,planoconta,clifor
from financeiro where round(original,0,1) = round (@valor,0,1)  
order by idconta desc 

ありがとうございます

于 2013-02-25T20:27:27.757 に答える