条件があるテーブルがあります.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`
どうすればこのようなことを達成できますか?
条件があるテーブルがあります.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`
どうすればこのようなことを達成できますか?
条件が有効な tsql としてテーブルに格納されている場合は、動的 tsql アプローチが最善の方法です。
それがオプションかどうかはわかりませんが、アプローチを再評価できる場合は、このような条件を保存するよりも優れた方法があるかもしれません. 例えば:
select * from emp where [sal] BETWEEN @minSAL AND @maxSAL
ご覧のとおり、これには 2 つの入力変数が必要になりますが、(>,<,=)
渡した値に応じて 3 つのベースすべてをカバーします。
これはあまり良い考えではないと思います。動的 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)