CREATE TABLE Tst(ID INT IDENTITY(1,1),a VARCHAR(10),b VARCHAR(10)) INSERT Tst(a,b) SELECT '100','>90' UNION ALL SELECT '100','=100' UNION ALL SELECT '100','<100' DECLARE @sql VARCHAR(2000) SET @sql='' SELECT @sql=@sql + 'UNION ALL SELECT ID=' + RTRIM(ID) + ', Result=CASE WHEN ' +a+b + ' THEN 1 ELSE 0 END ' FROM Tst SELECT @sql=STUFF(@sql,1,9,'')SELECT * FROM Tst EXEC (@sql)DROP TABLE Tst/*表数据 ID a b 1 100 >90 2 100 =100 3 100 <100 *//*结果数据 ID Result 1 1 2 1 3 0 */ 我输出的是0或1,当然,你也可以输出TRUE或FALSE
在VB里可以 dim c c=a & b 然后用eval来计算 c 这个变量的字串值所表示的表达式值. vb.net里我不清楚,你试试看有没有相应的函数
INSERT Tst(a,b) SELECT '100','>90'
UNION ALL SELECT '100','=100'
UNION ALL SELECT '100','<100'
DECLARE @sql VARCHAR(2000)
SET @sql=''
SELECT @sql=@sql + 'UNION ALL SELECT ID=' + RTRIM(ID) + ', Result=CASE WHEN ' +a+b + ' THEN 1 ELSE 0 END ' FROM Tst
SELECT @sql=STUFF(@sql,1,9,'')SELECT * FROM Tst
EXEC (@sql)DROP TABLE Tst/*表数据
ID a b
1 100 >90
2 100 =100
3 100 <100
*//*结果数据
ID Result
1 1
2 1
3 0
*/
我输出的是0或1,当然,你也可以输出TRUE或FALSE
dim c
c=a & b
然后用eval来计算 c 这个变量的字串值所表示的表达式值.
vb.net里我不清楚,你试试看有没有相应的函数
AS
EXEC('SELECT ' + @EVALSTR)GOEXEC PRC_EVAL '(34+56/78-23*70)+56*123'
AS
EXEC('SELECT 1 WHERE ' + @BOLEVAL)GOEXEC PRC_EVALBOOL '34<67'如果返回1 ,是真,如果无值返回.则是 F