【问题标题】:How to convert less than , greater than , equal < ,> ,= to SQL Server如何将小于、大于、等于 <、>、= 转换为 SQL Server
【发布时间】:2021-01-28 13:49:58
【问题描述】:

如何将小于、大于、等于 ,= 转换为 SQL Server 表 Temp1 数据


--Condition--
less than
greater than
equal 
Declare @Condition nvarchar(10)

SET @Condition = 
(SELECT CASE WHEN  Condition = 'less than' THEN '<' 
             WHEN  Condition = 'greater than' THEN '>'
ELSE '=' END AS Condition FROM Temp1 where Condition = 'less than')


IF (1 @Condition 2 )
BEGIN
   SELECT * FROM Temp1 
END

为什么@Condition 无效?

【问题讨论】:

  • 您能解释一下您要做什么吗?特别是 IF (1 @Condition 2 ) 是什么意思?
  • 这感觉像是XY Problem
  • 同理DECLARE @table sysname = N'foo'; SELECT * FROM @table; 无效。 SQL Server 无法从变量评估编程元素和实体 - 它不像 OO 语言那样在两次传递中这样做。

标签: sql sql-server


【解决方案1】:

你可以使用大布尔表达式:

if ( (@condition = 'greater than' and 1 > 2) or
     (@condition = 'less than' and 1 < 2) or
     . . .
   )

您也可以使用动态 SQL 来执行此操作,但仍需要 case 表达式将单词转换为符号,这样只会增加复杂性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-11
    • 2011-01-25
    • 1970-01-01
    • 2012-08-15
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多