【问题标题】:sql is there a command to check if a row is zero?sql是否有命令检查行是否为零?
【发布时间】:2012-08-09 00:08:12
【问题描述】:

我需要检查一行是否为零。对于空值,我通常使用 isnull() 但我的行永远不会为空。如果有这样的命令,我会这样使用:

select * from maintable where column1 = iszero(@param,column1)

【问题讨论】:

  • 我很困惑。您是在问如何检查包含整数的列是否包含 0 值?
  • “IsZero”是什么意思?你为什么不使用select * from maintable where column1 = 0?
  • 也许这有帮助:stackoverflow.com/q/580364/405117

标签: sql database tsql


【解决方案1】:

假设您正在寻找与IsNull() 相同的工作方式,您可以定义自己的函数

create function IsZero(@value int, @default int)
    returns int
as
begin

    if (@value <> 0)
        return @value

    return @default
end

使用示例

select 
    Returns5 = dbo.Iszero(5, 10),
    Returns10 = dbo.Iszero(0, 10)

或者在你的情况下

select * from maintable where column1 = IsZero(@param,column1)

【讨论】:

    【解决方案2】:
    SELECT * 
    FROM   maintable 
    WHERE  column1 = CASE @param 
                         WHEN 0 THEN column1 
                         ELSE @param 
                     END
    

    这将为您提供maintable 中的记录,其中column1 等于@param 变量。如果@param 变量为0,那么它将返回maintable 中的所有记录。

    【讨论】:

      【解决方案3】:

      试试这个:

      select *
      from maintable
      where column1 = @param or @param = 0 
      

      【讨论】:

        猜你喜欢
        • 2019-03-11
        • 1970-01-01
        • 2017-01-04
        • 1970-01-01
        • 2020-07-10
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多