读书人

求一SQL语句,多谢

发布时间: 2012-01-14 20:02:35 作者: rapoo

求一SQL语句,谢谢
数据库中有两张表A和B
表A 
ID UserID Value
1 001 52
2 002 48

表B
ID Level Condition
1 1 V> 50
2 2 40 <V <50
其中 Condition里面的值就是V> 50这种形式,有没有办法得到UserID的Level值?谢谢


[解决办法]
没有

数据库设计完全错误。


V> 50,40 <V <50
这样的 东西,程序是不会认识的

你应该在设置这个表达式的时候就要组织成标准的SQL语句
比如:V> 50
就是:A.Value > 50
比如:40 <V <50
就是:A.Value > 40 and A.Value < 50

只有这样的规则,才可以完成你的要求。

大家批批。
[解决办法]
同意楼上~~可以在insert到表A的时候写个触发器,判断A.value的值,B.Condition可以设置为一个bit类型存储~~同时还需要在A和B之见建立一个用于连接的字段~~比如说在B中存储A.id,才可以查到~
[解决办法]
mark
[解决办法]
规则定好,直接写sql语句可以处理

declare @sql varchar(2000)
set @sql= 'select *, (case '
select @sql=@sql+ ' when '+replace(condition, 'V ', 'cast(value as float) ')+ ' then '+[level] from tb
set @sql=@sql+ ' end) as level1 from ta '

现在就是 '40 <V <50 '这个在sql里面不认,可能要修改规则

读书人网 >SQL Server

热点推荐