不兼容的数据透视类型 SQL

2023-12-08

我已经获得了一个数据库,我需要执行PIVOT在。我的枢轴工作得很好。但是,我需要在 SELECT 中执行的列之一是text类型。但是,PIVOT 命令不能使用此数据类型。我该如何解决这个问题?


我个人的偏好是将列类型转换为VARCHAR(MAX)并完成它,TEXT无论如何都在弃用列表中。

如果这不是一个选项,您可以简单地将文本值转换/转换为VARCHAR(MAX)在你的查询中。例如

CREATE TABLE #T (A TEXT, B CHAR(1), Val INT);
INSERT #T (A, B, Val)
VALUES ('A', '1', 1), ('A', '2', 3), ('A', '3', 2);

SELECT  pvt.A, pvt.[1], pvt.[2], pvt.[3]
FROM    #T
        PIVOT 
        (   SUM(Val)
            FOR B IN ([1], [2], [3])
        ) pvt;

给出错误:

消息 488,第 16 级,状态 1,第 6 行

透视分组列必须具有可比性。 “A”列的类型是“文本”,不可比较。

这工作正常:

SELECT  pvt.A, pvt.[1], pvt.[2], pvt.[3]
FROM    (   SELECT A = CAST(A AS VARCHAR(MAX)), B, Val
            FROM #T
        ) t
        PIVOT 
        (   SUM(Val)
            FOR B IN ([1], [2], [3])
        ) pvt;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不兼容的数据透视类型 SQL 的相关文章

  • Template_searchpath 在 Airflow 中给出 TemplateNotFound 错误并且找不到 SQL 脚本

    我有一个这样描述的 DAG tmpl search path home airflow gcs sql requests with DAG dag id pipeline default args default args template
  • SQL 中最有效的搜索方式?

    我有一个包含 75 000 多行的数据库 每天添加 500 多个条目 每行都有一个标题和说明 我创建了一个 RSS 提要 它为您提供特定搜索词的最新条目 例如http site com rss rss q 披萨 http site com
  • 仅当列不为 NULL 时才连接列

    我有一个像这样的 SQL Server 表 PERSON NAME PHONE PHONE1 PHONE2 PHONE CONCAT Name1 12345 Null Null Null
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • 如何编写一个简单的版本控制系统?

    我想做一个简单的版本控制系统 但我不知道如何构建我的数据和代码 这是一个简短的例子 用户登录 User has two options when uploading a file 提交新文件 提交文件的新版本 用户应该能够看到树 版本不同
  • sql查询中where子句中的CASE语句

    我正在尝试在我正在处理的查询的 where 子句中编写一个 case 语句 我正在水晶报告中导入代码 我基本上是想说明变量 类型 是否设置为 创建 以便在where子句中为该日期范围运行 否则为不同的日期范围运行 它一直给我一个错误 我似乎
  • 执行计划中是否考虑了功能?

    当查询在 SELECT 或 WHERE 子句中包含 PL SQL 函数 用户定义函数 时 如何生成执行计划 它是否也计算这些函数的成本并将其显示在执行计划中 或者这些函数只是被忽略 在此先感谢您的帮助 用户生成的函数在 SELECT 或 W
  • 添加日期时间和时间

    服务器 SQL Server 2012 SP1 开发者版 Code declare datetime datetime 1900 01 01 00 00 00 000 declare time time 11 11 11 select da
  • ssis将N个表从源服务器加载到目标服务器的最佳实践

    我需要将 N 个 大约 50 个 表从源数据库加载到目标数据库 每个表都与其他表不同 因此元数据不同 我想我可以使用父 pkg 来调用子 pkg 其中每个子 pkg 都有简单的结构 例如 DFT 来映射要导入的表 1 个子 pkg gt 1
  • 如何从 tarantool 中选择有限数量的记录,就像 SQL 中的 SELECT LIMIT 一样?

    我想在 Tarantool 空间上执行选择 使用过滤和限制结果 就像我可以使用简单的 SQL 查询一样 SELECT FROM users WHERE age gt 33 LIMIT 1 我怎样才能做到这一点 可以使用 Lua 和 SQL
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • 如何从表中选择层次结构中的最低级别

    我有一个具有父 子关系的表 Table A Column Id int Column Parent Id int Column Description text 一组示例数据如下 999 NULL Corp 998 999 Div1 997
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • SQL COUNT(*) 返回错误答案

    以下脚本应返回部门名称以及这些部门中的员工人数 营销 行政和销售部门有 0 名员工 但返回值不是 0 而是 1 我怎样才能纠正它 select Department Departments DepartmentID count as Num
  • 如何在 SQL 中编写 where 子句来按一天中的时间过滤 DATETIME 列?

    我有带有 DATETIME 列时间戳的数据 我想将其过滤到 DATETIME 介于上午 9 30 到下午 5 30 之间的任意一天的记录集 最好的方法是什么 更新 更改是因为我需要精确到分钟 而不仅仅是小时 对于那个很抱歉 您始终可以将其编
  • 在带有循环引用的表中插入 SQL

    我有 2 张桌子 Empleados numEmpl nombre apellido sexo telefono salario numDept Departamentos numDept nombreDept numDirect 在部门中
  • 标签中的文字大小

    如何限制标签中的字符数 您可以通过设置自动截断带有省略号的文本frame of the UILabel NSInteger newSize 10 label frame CGRectMake label frame origin x lab
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable

随机推荐

  • 如何从嵌套函数内部访问 Stimulus JS 控制器方法?

    我有一个 Stimulus 控制器 其中有一个 setSegments 函数 然后在 connect 方法中使用以下代码 connect const options overview container document getElemen
  • 十六进制到二进制转换

    我已通过十六进制转换器将 jpeg 文件转换为十六进制代码 现在如何将该十六进制转换为二进制并另存为Jpeg磁盘上的文件 Like var 声明为十六进制代码 然后将该 var 十六进制代码转换为二进制并保存在磁盘上 Edit Var my
  • 如何使用X509使用JDBC连接MySQL?

    我已经设置了 MySQL 社区服务器 5 1 数据库服务器 我已经设置了 SSL 创建了证书等 我创建了一个具有 REQUIRES X509 属性的用户 我可以使用命令行客户端 mysql 使用此用户进行连接 并且 status 命令显示
  • 请解释一下此电子邮件验证正则表达式:[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有这个脚本使用正则表达式来检查表单字段是否包含有效的电子邮件地址 请从声明中解释一下
  • Firebase 安全规则 - Auth 生成的 UID 是否应该保密? [复制]

    这个问题在这里已经有答案了 我一直在阅读 Firebase 实时数据库安全规则指南 https firebase google com docs database security 我有点困惑是否应该将 Firebase Auth 生成的
  • 如何将 Tensorflow BatchNormalization 与 GradientTape 结合使用?

    假设我们有一个使用 BatchNormalization 的简单 Keras 模型 model tf keras Sequential tf keras layers InputLayer input shape 1 tf keras la
  • 基于 gnu readline 的节点 shell

    是否有一个在内部使用 gnu readline 的 Node 外壳 As you know node shell sucks in 2 ways among others It doesn t have search for history
  • 是否可以将鼠标光标放在元素后面或者鼠标光标是否有 z 索引?

    当鼠标悬停在某个元素上时 我想用自定义图像替换鼠标光标 我通过首先关闭鼠标光标来做到这一点 cursor none 当它悬停在元素上时 然后我读出悬停元素上的光标位置 并将图形的 css 位置设置为光标位置并稍微偏移 以便鼠标光标不在图形上
  • Keras 如何处理多标签分类?

    我不确定如何解释 Keras 在以下情况下的默认行为 我的 Y 基本事实 是使用 scikit learn 设置的MultilabelBinarizer 因此 举一个随机的例子 我的一排y列是 one hot 编码的 如下所示 0 0 0
  • 显示所有文件的键盘快捷键

    有没有人在解决方案资源管理器中找到 显示所有文件 的键盘快捷键 还有一个相关的问题 是否有任何工具可以显示您在 VS 中执行的任何操作的键盘快捷键 Cheers SteveC 默认情况下没有 但 转到工具 选项 环境 键盘 在 显示包含的命
  • ICommand方法执行参数值

    我尝试理解 wpf 中的 ICommand 在我的 Event 类中 我实现了 ICommand 及其方法 一种方法是执行 public void Execute object parameter Do something 现在是我的问题
  • Office 365 REST API 可以发送包含纯文本和 HTML 正文的电子邮件吗?

    我正在查看 API 文档 看起来您只能指定一个Body in a Message 发送消息 https msdn microsoft com en us office office365 api mail rest operations S
  • 对象实例可以安全地清空指向自身的“this”指针吗?

    Class A public NullIt this NULL Foo NullIt A a new A a gt Foo assert a should assert here 除了内存泄漏之外 有没有办法达到这种效果 您到底想达到什么效
  • 使用接口引用访问 java Object 类方法

    让我们考虑以下示例 public interface SimpleInterface public void simpleMethod public class SimpleClass implements SimpleInterface
  • Envoy 的 Jwt 验证失败

    我有一个 Laravel Lumen 登录 API 它使用 HS256 生成 JWT 然后我将不记名令牌发送到 Envoy Gateway 并从 Envoy 获取 JWT验证失败 在官方 JWT 解码网站上 我可以成功解码并验证我的不记名令
  • jquery 手风琴防止冒泡/允许默认链接操作

    我有一个手风琴设置如下 shortheadline accordion active false header headline autoHeight false animated slowslide changestart functio
  • 如何使用set来改变shell变量?

    我正在使用 GNU bash 版本 4 3 11 1 release x86 64 pc linux gnu set grep SHELL SHELL bin bash SHELLOPTS braceexpand emacs hashall
  • 检查一个日期是否落在日期范围-Linq 查询之间

    我正在数据库中存储员工的休假信息 从和到日期将存储在数据库中 我想阻止员工在已申请的休假范围内申请休假 例如 假设一名员工已在 01 01 2015 至 05 01 2015 之间申请休假 i if user again try to ap
  • 验证 JSF 中的小数输入

    我想将输入验证为整数 因此 任何带有小数的值都应该被过滤 但我不知道如何实现这一目标 我已经尝试了很多方法 但是使用下面的代码 如果输入是 61 2 则该值将转换为61 只是截断小数部分 但我想强制验证错误 我确信我可以在没有自定义验证器的
  • 不兼容的数据透视类型 SQL

    我已经获得了一个数据库 我需要执行PIVOT在 我的枢轴工作得很好 但是 我需要在 SELECT 中执行的列之一是text类型 但是 PIVOT 命令不能使用此数据类型 我该如何解决这个问题 我个人的偏好是将列类型转换为VARCHAR MA