错误:列“DOB”的类型与UNPIVOT列表中指定的其他列的类型冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:列“DOB”的类型与UNPIVOT列表中指定的其他列的类型冲突相关的知识,希望对你有一定的参考价值。

我的查询,

只需将行转换为列

SELECT
  ColumnName,
  value
FROM (SELECT
  id [ID],
  firstname [First Name],
  lastname [Last Name],
  dob [DOB],
  sex [Gender]
FROM client
WHERE id = '11') d
UNPIVOT
(
Value FOR
ColumnName IN ([ID], [First Name], [Last Name], [DOB], [Gender])
) unpiv;

但它显示错误。

列“DOB”的类型与UNPIVOT列表中指定的其他列的类型冲突。

答案

结果将返回行中的所有列,构建包含所有值的新派生列,您必须确保这些类型适合在一起。

您可以将所有列包装在CAST

SELECT
  ColumnName,
  value
FROM (SELECT
  CAST(id AS NVARCHAR(MAX)) [ID],
  CAST(firstname AS NVARCHAR(MAX)) [First Name],
  CAST(lastname AS NVARCHAR(MAX)) [Last Name],
  CAST(dob AS NVARCHAR(MAX)) [DOB],
  CAST(sex AS NVARCHAR(MAX)) [Gender]
FROM client
WHERE id = '11') d
UNPIVOT
(
Value FOR
ColumnName IN ([ID], [First Name], [Last Name], [DOB], [Gender])
) unpiv;

DOB将转换为您机器的默认设置。使用CONVERT,您可以强制执行给定的日期/时间格式。

以上是关于错误:列“DOB”的类型与UNPIVOT列表中指定的其他列的类型冲突的主要内容,如果未能解决你的问题,请参考以下文章

pandas筛选dataframe数据中指定数据列的内容包含在指定列表中的所有数据列

SQL 中删除语法的问题 - 当子查询没有与 EXISTS 一起引入时,错误只能在选择列表中指定一个表达式

如何在pe:gcharts中指定列类型

错误:INSERT语句中的列多于VALUES子句中指定的值

在样式中指定列表框 ItemContainer 上的数据上下文类型

Pandas处理dataframe的文本数据列:使用str属性获取数据列的字符串方法类split函数基于指定分隔符拆分数据列的内容为列表设置参数n控制拆分的次数获取所有列表中指定位置的元素内容