我正在尝试对大约35.000行的表进行选择,其中一列是varbinary,可能具有一些NULL值,我需要从结果中排除这些NULL值。
问题是:当您在varbinary列上执行选择时,需要花费大量时间才能完成,我发现我不确定自己可以使用的方法,或者是执行类似操作的最佳方法那,我想要一些意见。
在这里:
SELECT REQUEST,REQLOCATION,DESCRIPT,BLOBNAME,BLOBSIZE,substring(BLOBVALUE,0,1) AS BLOBVALUE,BLOBMODE,BLOBPATH,BLOBID,
REDIRID,ANALYST,CLIENT,SEVENT,PACKAGE,INSERTDATE
FROM REQBLOB WHERE substring(BLOBVALUE,0,1) IS NOT NULL
varbinary
列是“ BLOBVALUE”列,我在其中进行了“ substring
”选择,该查询立即给我20.000行的结果,我认为它仅返回有效数据,而不返回NULL ,您对此有何看法?
答案 0 :(得分:2)
摆脱SUBSTRING
中的WHERE
,这使您的查询不可显示;这就是为什么它很慢。
SELECT REQUEST,
REQLOCATION,
DESCRIPT,
BLOBNAME,
BLOBSIZE,
SUBSTRING(BLOBVALUE, 0, 1) AS BLOBVALUE,
BLOBMODE,
BLOBPATH,
BLOBID,
REDIRID,
ANALYST,
CLIENT,
SEVENT,
PACKAGE,
INSERTDATE
FROM REQBLOB
WHERE BLOBVALUE IS NOT NULL;
您为什么仍要在varbinary
上使用子字符串呢??