代码之家  ›  专栏  ›  技术社区  ›  Gilad

如何确定SQL表行中包含的值不是空值

  •  0
  • Gilad  · 技术社区  · 14 年前

    这就是问题所在:

    我有一个列数未知的表。所有的列都是真实的。

    假设该表中只有一行,我需要一个方法来确定该表/行中是否有非空的值。

    我不知道运行时的列数和它们的名称(也不想使用C光标)

    SQL Server 2005

    谢谢你的帮助。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Pondlife    14 年前

    以下是一种方法-如果行中的所有值都为空,则checksum()不返回值:

    create table #t (col1 real, col2 real, col3 real)
    select checksum(*) from #t
    if @@rowcount = 0
        print 'All values are NULL'
    else
        print 'Non-NULL value(s) found'
    drop table #t
    

    另一方面,我不知道这是不是你在做什么:“临时表内置内存”听起来像是你在管理自己。有了更多关于你想要实现什么的信息,我们也许可以提出一个更好的解决方案。

    顺便说一下,存储设置的单行表没有什么问题。它的最大优点是每个设置都有一个单独的数据类型,可以有检查约束等。

        2
  •  0
  •   reko_t    14 年前

    听起来像是在做某种设置/属性表,因为您知道其中只有一行。如果需要动态属性,这是错误的方法;相反,使用一个包含两列的表: option value . 然后,对于每个动态属性,您将存储一行。