是否有人知道在SQL Server中解决代数方程的任何能力
一个表包含问题和答案
问题解答 宽度700 长度200
另一个表包含公式 (宽度+ 100)/长度
我正在寻找的返回值是4
问题是一个动态列表,因此每次运行时问题都会略有不同,加上列表增长,所以我必须能够独立地添加到列表中,而不会影响sql语句。
答案 0 :(得分:1)
SQL非常适合简单的数学运算。这是一个例子:
SELECT (WIDTH + 100) / LENGTH
FROM DIMENSIONS
因此,如果您将包含数学表达式的表作为字符串,则可以查询字符串,将其组合为新的SQL查询,然后执行新查询。例如:
SELECT 'SELECT ' || Expression || ' FROM DIMENSIONS'
FROM Expressions
如果Expressions
是列Expression
的值为(WIDTH + 100) / LENGTH
的表,则结果将是我的第一个示例中的SQL查询。然后只需执行返回的SQL。
注意:如果表达式来自不受信任的来源(例如互联网上的用户),则直接执行他们的输入是不安全的。
答案 1 :(得分:1)
我认为你必须建立一个字符串然后执行它。例如在puedo SQL中,类似于;
declare SQLSTR varchar2(2000)
set SQLSTR = select 'select '''+REPLACE(
REPLACE(<column name holding formal>), 'WIDTH', <column holding width>),
'LENGTH', <column name holding length>) '''
+ ' from <table holding width and length columns> '
+ ' where <predicate>'
from <table holding formula.
where <predicate>
exec (SQLSTR)