我有一个表有条件的表。如何在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`
我怎样才能完成这样的事情?
答案 0 :(得分:0)
我不认为这是一个非常好的主意,除了你需要处理{{{{{{{{ 3}}。无论如何,这是你想要的一种方法:
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)
答案 1 :(得分:0)
如果您的条件作为有效的tsql存储在表中,那么动态tsql方法是最好的方法。
不确定它是否适合您,但如果您可以重新评估该方法,可能会比存储这样的条件更好。例如:
select * from emp where [sal] BETWEEN @minSAL AND @maxSAL
这将要求你有2个输入变量 - 但是它会覆盖所有3个基础(>,<,=)
,这取决于你传递的值。