猿问

请教一个sql问题,暂时放在首页

declare @CustomerID uniqueidentifier <P><BR>set @CustomerID = '129F1B78-5373-4196-BE92-253762896ADB' </P> <P>&nbsp;</P> <P><BR>select a.* from opvoucher a <BR>WHERE&nbsp;&nbsp;&nbsp; (a.customercode = @CustomerID or @CustomerID is null ) </P> <P>&nbsp;</P> <P><BR>select a.*&nbsp; from opvoucher a <BR>WHERE&nbsp; (a.customercode = @CustomerID) </P> <P>&nbsp;</P> <P>为何 前一句 where子句利用不到索引?</P> <P>&nbsp;</P>

慕码人8056858
浏览 507回答 2
2回答

翻过高山走不出你

不是这样写的啊(好像是这样的哦~你试下~~) select a.* from opvoucher a WHERE a.customercode = @CustomerID or a.customercode =@CustomerID is null

慕妹3242003

如果@CustomerID真的是NULL的话,会怎样?岂不是全选出来了?因为WHERE字句对于任何记录来说都为TRUE…… 也就是说,第一条SQL先别说什么索引了,本身就是错的!
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答