过滤存储在sql server中的varbinary中的任何数据类型

时间:2015-03-30 16:30:32

标签: sql-server-2008

我正在使用SQL Server 2008,我希望将任何数据类型(int,float,date& time,string,files等)存储在一个表中:

create table T
(
  [type] int,
  [value] varbinary(max)
) 

[type]帮助我解释存储在[value]应用程序中的C#列中的数据。

如何使用查询0.7获取值高于select * from T where [type] = N and ...的所有行(N保证[value]存储float)?如果我先在0.7应用程序中将C#转换为二进制文件而不是将其发送到SQL Server,我可以这样做吗?

或者我如何得到包含%cat%的所有字符串? Full-Text Search引擎在这种情况下有用吗?

我不想cast个值,因为我需要大量的if语句。

1 个答案:

答案 0 :(得分:0)

解决了这个问题后,我明白没有解决方案。您无法将SQL Server比较显示为float的两个varbinary值,例如,无需转换为浮动。

由于无法过滤存储在一个varbinary列中的数据,因此我创建了另外四列包含SQL Server基本数据类型的列intfloat,{{ 1}},datetime)。现在,每个用户数据类型都映射到nvarchar基本类型。

现在我可以过滤任何用户类型(SQL Server除外,但我不需要过滤图像或文件),每行只使用一个与该类型相关的列(其他行有varbinary个值)