SQL Server内で代数方程式を解く能力を知っている人はいますか
1 つのテーブルには質問と回答が含まれています
質問 回答 幅 700 長さ 200
もう 1 つのテーブルには、式 (WIDTH + 100) / LENGTH が含まれています。
私が探している戻り値は4です
質問は動的リストであるため、実行するたびに質問がわずかに異なり、さらにリストが大きくなるため、SQLステートメントに影響を与えることなく、リストに個別に追加できる必要があります。
SQL Server内で代数方程式を解く能力を知っている人はいますか
1 つのテーブルには質問と回答が含まれています
質問 回答 幅 700 長さ 200
もう 1 つのテーブルには、式 (WIDTH + 100) / LENGTH が含まれています。
私が探している戻り値は4です
質問は動的リストであるため、実行するたびに質問がわずかに異なり、さらにリストが大きくなるため、SQLステートメントに影響を与えることなく、リストに個別に追加できる必要があります。
SQL は単純な計算を完全に行うことができます。次に例を示します。
SELECT (WIDTH + 100) / LENGTH
FROM DIMENSIONS
したがって、数式を文字列として含むテーブルがある場合は、文字列をクエリし、それを新しい SQL クエリに構成して、新しいクエリを実行できます。例えば:
SELECT 'SELECT ' || Expression || ' FROM DIMENSIONS'
FROM Expressions
がvalue を持つExpressions
列を持つテーブルの場合、結果は最初の例の SQL クエリになります。次に、返された SQL を実行します。Expression
(WIDTH + 100) / LENGTH
注:式が信頼できないソース (インターネット上のユーザーなど) からのものである場合、それらの入力を直接実行するのは安全ではありません。
文字列を作成してから実行する必要があると思います。たとえば、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)