-1

SQL Server内で代数方程式を解く能力を知っている人はいますか

1 つのテーブルには質問と回答が含まれています

質問 回答 幅 700 長さ 200

もう 1 つのテーブルには、式 (WIDTH + 100) / LENGTH が含まれています。

私が探している戻り値は4です

質問は動的リストであるため、実行するたびに質問がわずかに異なり、さらにリストが大きくなるため、SQLステートメントに影響を与えることなく、リストに個別に追加できる必要があります。

4

2 に答える 2

1

SQL は単純な計算を完全に行うことができます。次に例を示します。

SELECT (WIDTH + 100) / LENGTH
FROM DIMENSIONS

したがって、数式を文字列として含むテーブルがある場合は、文字列をクエリし、それを新しい SQL クエリに構成して、新しいクエリを実行できます。例えば:

SELECT 'SELECT ' || Expression || ' FROM DIMENSIONS'
FROM Expressions

がvalue を持つExpressions列を持つテーブルの場合、結果は最初の例の SQL クエリになります。次に、返された SQL を実行します。Expression(WIDTH + 100) / LENGTH

:式が信頼できないソース (インターネット上のユーザーなど) からのものである場合、それらの入力を直接実行するのは安全ではありません。

于 2013-04-21T06:26:16.150 に答える
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)
于 2013-04-21T06:44:18.677 に答える