当前位置: 首页 > 知识库问答 >
问题:

如何在SQL中选择没有空值的行(在任何列中)?

郑伟彦
2023-03-14

我有一个名为table1的表

它有100列:{col1,col2,...,col100}

我了解如何select特定列中不包含空值的行,例如col1:

SELECT *
FROM table1
WHERE col1 IS NOT NULL

如何选择任何列中不包含空值的所有行

SELECT *
FROM table1
WHERE * IS NOT NULL

但这将在mysql(我正在使用)中返回一个错误

共有1个答案

谢建业
2023-03-14

虽然我建议写出每个列名并按照建议重构表,但这里有一个使用Dynamic SQL的选项:

SET @sql = NULL;
SELECT CONCAT('SELECT * FROM table1 WHERE ', 
              GROUP_CONCAT(c.COLUMN_NAME SEPARATOR ' IS NOT NULL AND '), 
              ' IS NOT NULL') INTO @sql
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME = 'table1'
ORDER BY c.ORDINAL_POSITION;

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
  • DB小提琴演示
 类似资料:
  • 问题内容: 我正在一个项目中,另一个开发人员创建了一个表,该表的列名为。那是两个词之间的空格。如果我使用“企业名称” 运行语句,则说没有名称为“企业”的列。 我怎么解决这个问题? 问题答案: 通常,第一步是首先不要这样做,但如果已经完成,则需要诉诸正确的列名引用: 通常,这类事情是由使用Microsoft Access之类的人创建的,并且总是使用GUI来做他们的事情。

  • 问题内容: 我正在使用MSSQL Server2005。在我的数据库中,我有一个表“ customerNames”,其中有两列“ Id”和“ Name”以及大约。1,000个结果。 我正在创建一个功能,每次必须随机选择5个客户。谁能告诉我如何创建一个查询,该查询每次执行查询时都会随机获得5行(Id和Name)? 问题答案: 也就是说,似乎每个人都可以访问此页面,以获取对您的问题的更一般的答案: 在

  • 我正在尝试使用Python和DataStax驱动程序(Python- 一切都很好,但有些事情我无法理解。如何插入没有空值的行? 例如, 如果我想插入一个没有url值的行,它可以工作,但在卡桑德拉中,我会在url列中看到“null”。 我检查这个文档: http://datas tax . github . io/python-driver/getting _ started . html #将参数

  • 问题内容: 是否可以选择除一列之外的所有列? 这是所有列名称:ID,名称,地址,年龄 我不想使用此select语句,因为我的表的列数彼此不同。 问题答案: declare @cols varchar(max), @sql varchar(max) SELECT @cols = STUFF ( ( SELECT DISTINCT ‘], [‘ + name FROM sys.columns wher

  • 问题内容: 我有一张桌子和一张桌子。向用户显示随机的其他用户数据,并可以决定他喜欢还是不喜欢它。我正在为尚未评级的代理用户选择新的随机用户合作伙伴! 现在,我试图选择表中没有行的所有用户,并将执行用户与已评级用户的关系评级。 该表是一个标准的用户表,在我的列,,,和。 我正在使用Laravel Eloquent,但也可以使用原始sql。 我的尝试: 这是错误的,因为通过此尝试我没有选择任何新用户。

  • 问题内容: 我想根据某些条件选择一些行,然后从该集合中获取一个条目,并在其前后输入5行。 现在,如果表上有一个主键,我可以用数字方式执行此操作(例如,在数字上,主键比目标行的键小5,而目标行的键的数字多5)。 因此,选择主键为7的行以及附近的行: 但是,如果我仅选择某些行作为开始,则会丢失使用主键的数字方法(并且假设键无论如何在顺序上都没有任何间隙),并且需要另一种方法来获取之前和之后的最接近的行