首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一SQL语句,多谢

2012-01-14 
求一SQL语句,谢谢数据库中有两张表A和B表A IDUserIDValue100152200248表BIDLevelCondition11V 502240 V

求一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里面不认,可能要修改规则

热点排行