我有一个数据库,用于存储相当大的二进制数据块。远程应用程序,用于检查办公室中的数据库。
我基本上希望远程应用程序检查数据是否存在,而不必从远程数据库中“下载”数据。
SELECT BinaryData FROM DB WHERE BinaryData IS NOT NULL
可以,但是它也可以下载数据,我只想简单检查一下即可。
任何想法
答案 0 :(得分:1)
您可以选择“非空”行的计数。这样,您就不必将二进制数据下载到远程应用程序。
SELECT COUNT(*) FROM DB WHERE BinaryData IS NOT NULL
答案 1 :(得分:0)
请不要选择要下载的任何数据。
SELECT NULL FROM DB WHERE BinaryData IS NOT NULL
答案 2 :(得分:0)
检查非空值的另一种方法
SELECT COUNT(*) as Count_BinaryData FROM DB WHERE DATALENGTH(BinaryData) > 0
答案 3 :(得分:0)
如果您使用的是SQL Server(2008+),则可以使用EXISTS
,它比简单的COUNT(*)
更快,因为它会在第一次匹配时停止选择行。
IF EXISTS (SELECT 1 FROM DB WHERE BinaryData IS NOT NULL)
SELECT 1
ELSE SELECT 0
或者,您也可以这样写(在这种情况下,如果有匹配项,您将获得1,如果没有匹配项,则将不选择任何行)
SELECT 1 WHERE EXISTS (SELECT 1 FROM DB WHERE BinaryData IS NOT NULL)
可以在docs中找到更多示例。