0

条件があるテーブルがあります.t-sql条件テーブルで連結する方法

SAL
sal >100
sal < 100
sal=500

SELECT SAL  into #sal from condtbl
Select Top 1 @sal = event From #sal

`select * from emp where @sal`

どうすればこのようなことを達成できますか?

4

2 に答える 2

0

条件が有効な tsql としてテーブルに格納されている場合は、動的 tsql アプローチが最善の方法です。

それがオプションかどうかはわかりませんが、アプローチを再評価できる場合は、このような条件を保存するよりも優れた方法があるかもしれません. 例えば:

select * from emp where [sal] BETWEEN @minSAL AND @maxSAL

ご覧のとおり、これには 2 つの入力変数が必要になりますが、(>,<,=)渡した値に応じて 3 つのベースすべてをカバーします。

于 2013-03-21T20:52:12.480 に答える
0

これはあまり良い考えではないと思います。動的 sqlを処理する必要があるという事実に加えて、条件テーブルに適切な列を配置して、クエリを壊す可能性のある多くの要因があります。とにかく、これはあなたが望むものの1つのアプローチです:

DECLARE @sal NVARCHAR(MAX), @sql NVARCHAR(MAX)

SELECT @sal = SAL
FROM condtbl
WHERE IdCondition = 1 -- an example, don't rely on TOP 1 without ORDER BY

SET @sql = 'SELECT * FROM emp WHERE ' + @sal

EXEC(@sql)
于 2013-03-21T20:43:28.237 に答える