获取表的列名,该列名始终为空

2023-12-13

我有一个有很多列的表。他们中的一些人总是NULL并且不包含任何值。

有没有办法使用 SQL 查询列出这些列,而不是一一测试它们?
我想避免:

SELECT Col1 from MyTable where Col1 IS NOT NULL
SELECT Col2 from MyTable where Col2 IS NOT NULL
...

假设您使用的是 SQL Server,只需将您的表名称分配给@strTablename

在这个例子中我假设dbo.MyTable是表名

DECLARE @strTablename  varchar(100) = 'dbo.MyTable'
DECLARE @strQuery  varchar(max) = ''
DECLARE @strUnPivot as varchar(max) = ' UNPIVOT ([Count] for [Column] IN ('

CREATE TABLE ##tblTemp([Column] varchar(50), [Count]  Int)

SELECT @strQuery = ISNULL(@strQuery,'') + 'Count([' + name + ']) as [' + name + ']  ,' from sys.columns where object_id = object_id(@strTablename) and is_nullable = 1
SELECT @strUnPivot = ISNULL(@strUnPivot,'') + '[' + name + '] ,' from sys.columns where object_id = object_id(@strTablename) and is_nullable = 1


SET @strQuery = 'SELECT [Column],[Count] FROM ( SELECT ' + SUBSTRING(@strQuery,1,LEN(@strQuery) - 1) + ' FROM ' + @strTablename + ') AS p ' + SUBSTRING(@strUnPivot,1,LEN(@strUnPivot) - 1) + ')) AS unpvt '

INSERT INTO ##tblTemp EXEC (@strQuery)

SELECT [Column] from ##tblTemp Where [Count] =0

DROP TABLE ##tblTemp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取表的列名,该列名始终为空 的相关文章

  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 是否可以引用同一个表中的不同列?

    如果博客有一个 类别 表 如下所示 CREATE TABLE categories id INTEGER PRIMARY KEY AUTO INCREMENT parent id INTEGER NOT NULL name VARCHAR
  • 如何从子查询 SQLite 接收两个值

    我是一个自学的 SQLite 新手 我有三个表 person pet person pet schema 是 CREATE TABLE person id INTEGER PRIMARY KEY first name TEXT last n
  • SQL WHERE 取决于星期几

    我需要检查不同日期的记录 具体取决于当前是一周中的哪一天 在周五 我需要它查看整个下周 直到下周日 在其他任何一天 它都应该检查当前周 直到下周日 我目前有以下内容 但由于语法错误而无法工作 是否可以做一个CASE WHEN里面一个WHER
  • 尝试从 Linux 通过 ODBC 连接到 SQL Server 2014 时出现错误代码 0x2746 (10054)

    Ubuntu 22 04 1 LTS pyodbc 4 0 35 OpenSSL 3 0 2 15 Mar 2022 Library OpenSSL 3 0 2 15 Mar 2022 遵循的步骤安装适用于 SQL Server Linux
  • Big Query - 将数组/json 对象转置为列

    这个问题是这两个问题的延续 Bigquery 将数组转置为列 https stackoverflow com q 64346504 7463780 大查询 将特定字段转置为列 https stackoverflow com q 643983
  • 查询和扫描多行性能缓慢

    下面的查询一行的执行时间为 6 18 分钟 Exception type 1 的基数值为 3 我不知道如何提高性能 Query select count 1 as rage tap from summary funnel 1066 s jo
  • 如何将逗号分隔的列值与另一个表作为行连接

    我试图通过首先转换我正在成功执行的 SupplierId 列中的逗号分隔值来连接两个表 然而 当我尝试通过外键 DCLink 加入另一个带有供应商名称的表 Vendors 时 问题就出现了 这就是我的意思 原始表的 select 语句 SE
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 在 SQL Server 中选择 XML 元素

    我有一些 XML 需要使用 SQL Server 2008 进行解析 我想我已经接近得到我想要的了 但是我没有正确的语法 我相信 我有以下内容 DECLARE doc XML SET doc
  • 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

    我正在使用亚马逊红移 我在该字符串中有一个列存储为逗号分隔 例如Private Private Private Private Private Private United Healthcare 我想使用删除其中的重复项query 所以结果
  • 如果字符串包含数字,则仅返回字符串中的数字

    例如 字符串是abc123CD需要找到一种只读方法numbers在字符串中i e select a postgres function abc123CD Result 123 My try select substring abc123CD
  • 如何创建从表中最大值开始的 Oracle 序列?

    尝试在 Oracle 中创建一个以特定表中的最大值开始的序列 为什么这不起作用 CREATE SEQUENCE transaction sequence MINVALUE 0 START WITH SELECT MAX trans seq
  • 如何在 SQL 选择查询中将行转换为 JSON?

    以下查询将整个表返回为单个 JSON 字符串 JSON 对象列表 每行一个 SELECT FROM MyTable FOR JSON AUTO 我需要返回多行 其中每行都是表中单行的 JSON 字符串 例如 如果表字段为 A B C 输出应
  • PostgreSQL 位图堆扫描索引非常慢,但仅索引扫描很快

    我创建了一个包含 43kk 行的表 并用值 1 200 填充它们 因此 表中每个数字大约为 220k create table foo id integer primary key val bigint insert into foo se
  • 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

    我正在这样做 students Student find gt all return this gt render process array students gt students 然后在视图中 foreach students as

随机推荐

  • javascript - 年龄计算

    有 2 个 javascript 日期 第一个是生日 第二个是从该日期计算年龄的日期 最好的方法应该是什么 function calculateAge birthDate otherDate birthDate new Date birth
  • Safari 后退按钮不支持 PHP 注销会话

    我有一个 logout php 页面 它结束用户的会话并且运行良好 并执行以下操作 会话开始 session unset session destroy 我刚刚在使用 Safari 进行测试时注意到 当您注销时 您可以单击后退按钮返回到需要
  • 如何重现/清理混乱的 POST 参数以避免延迟作业的 YAML 序列化问题?

    今天 每次我开始delayed job工人 该进程将立即无声地终止 经过一番调查 并找出了前台模式delayed job 我终于发现问题出在了方法上delayed job序列化我的活动记录对象在 YAML 加载部分触发异常 Psych Sy
  • 应用程序因原因崩溃:集合 <__NSArrayM: 0x7071700> 在枚举时发生突变

    您能帮我找出单击分段控件后我的应用程序崩溃的原因吗 并非总是如此 但通常是在点击几次之后 错误信息 Terminating app due to uncaught exception NSGenericException reason Co
  • 将数据帧转换为 numpy 数组,值以逗号分隔

    场景 我已将 csv 以 t 分隔 读入 Dataframe 现在需要采用 numpy 数组格式进行聚类 而无需更改类型 问题 到目前为止 根据尝试的参考文献 如下 我未能获得所需的输出 我尝试获取的两列值位于 int64 float64
  • 与“int ()”的间接级别不同 (C)

    这段代码给了我这个错误 我不明白 我什至无法运行该程序 您能帮我解决这个错误吗 如果您不明白代码中的任何内容 请说出来 error C2040 CancelarPedido ppedido ppedido 与 int 的间接级别不同 pri
  • 对象从函数中的命名空间中消失

    我正在编写一个包装器来按行组合任意数量的数据集 由于有些变量可能具有唯一的变量 因此我首先限制数据中的变量 我的功能是这样工作的 rcombine lt function List Vars List2 lt lapply List sub
  • Python 中的字符串匹配

    我在列表中存储了300K个字符串 每个字符串的长度在10到400之间 我想删除那些作为其他字符串的子字符串的字符串 长度较短的字符串有更高的概率是其他字符串的子字符串 目前 我首先根据长度对这 300K 字符串进行排序 然后使用以下方法 s
  • SSRS 2008 R2 Globals!RenderFormat 导出方法

    有 7 个用于导出 SSRS 2008 报告的内置选项 我想知道在选择导出选项时是否有更简单的方法在 SSRS 中编写以下代码 IIF Globals RenderFormat Name WORD OR Globals RenderForm
  • CMake 引用逃脱难题

    我似乎无法理解 CMake 的转义规则 鉴于 set X A B C add custom target works COMMAND DUMMY 0 X X env grep X COMMENT This works add custom
  • grid.mvc 在控制器中使用过滤结果

    我正在使用 grid mvc http gridmvc codeplex com 用于过滤和排序 有谁知道如何在动作控制器中处理过滤结果 我试图通过 FormCollection 传递隐藏字段 但由于分页 仅传递可见值 或者 mvc 中是否
  • jsfiddle 上的相同代码但无法在我的服务器上运行? [复制]

    这个问题在这里已经有答案了 我很困惑 我只是想测试一个jquery simpleselect 并让它在jquery上正常工作 但是当我将它上传到我的服务器时 完全不起作用 我发誓它的代码是相同的 但也许新的眼光会有所帮助 我在这里缺少什么
  • ClearCase 动态视图中两个版本之间的差异

    比如说 我在 ClearCase 中有两个不同的动态视图 我想知道是否有任何命令可以提供报告 x lines added y lines deleted z lines changed 两个版本之间 是的 您可以使用diffstat生成一个
  • MessageStore 支持 QueueChannel,带有 Spring Integration+ Java Config

    弹簧集成参考指南指的是使用 MessageStore 实现来为 QueueChannel 提供持久性 它被提到了很多次 但所有示例都使用 XML 配置 即
  • 如何减少Android Workmanager的时间?

    我一直在检查其他链接 stackoverflow 以减少工作管理器的时间段 但我发现了以下链接 如何减少WorkManager中Periodic WorkManager的时间 上面的链接说最短时间是 15 分钟 需要立即从移动设备向服务器发
  • 如何将 MS botframework 机器人连接到 Skype for Business

    我发布了一个使用机器人框架构建的机器人 但我不知道如何将其连接到内部公司网络上的 Skype for Business 有谁知道流程是什么吗 Ed 尚不支持 Skype for Business
  • 如何创建一个数据类实现 Spring Security 特定的 UserDetails

    我正在尝试迁移一些spring webfluxkotlin 的示例代码 目前我想转换我的Spring数据蒙戈科特林样本 有一个User 原始 Data Mongo 版本看起来 Data ToString Builder NoArgsCons
  • Docusign 嵌入式签名

    我们正在使用docusign让人们签署在我们网站上注册的同意书 有人向我指出了嵌入式签名 API 据我了解 我必须创建一个我已经完成的信封 我为此使用 Net 示例 通过 API 登录正常 但尝试从 API 获取 URL 时出现以下错误 E
  • 在哪里可以找到 execve() 的源代码?

    你能给我源代码吗execve 系统调用 exec家庭 我正在使用 Linux execve 调用 sys execve sys execve 又调用 do execve 这就是操作的位置 http git kernel org p linu
  • 获取表的列名,该列名始终为空

    我有一个有很多列的表 他们中的一些人总是NULL并且不包含任何值 有没有办法使用 SQL 查询列出这些列 而不是一一测试它们 我想避免 SELECT Col1 from MyTable where Col1 IS NOT NULL SELE