SQL查询字段名称,字段类型和字段值

时间:2016-04-05 19:06:19

标签: sql field-names

我们说我有一张类似下面的表格

pp_refno   pp_rectype   _pp_account  pp_empid   pp_dept
---------------------------------------------------------
90221      contractor    061509864   C00001121  1111000139

是否有可以编写的查询,以便以这种格式返回数据?

field_name          field_type     field_value
---------------------------------------------------------
pp_refno            int             90221
pp_rectype          char            contractor
pp_account          char            061509864
pp_empid            char            C00001121 
pp_dept             char            1111000139

2 个答案:

答案 0 :(得分:0)

是的,可以使用您正在使用的数据库的信息架构。但是,您必须添加1列才能将其用于多行:

ko.applyBindings(new ViewModel(@Model.ClientSideModel.ToJson()));

这样您就可以识别多条记录。

此外,您还必须为每个表编写或生成特定查询,由于数据的工作方式,这些查询可能很大且速度很慢。

如果您只是检索单行,您还可以使用存储过程以给定方式列出数据。

答案 1 :(得分:0)

您可以使用SQL查询的UNPIVOT函数来实现此行为。下面的链接为您提供了类似示例的更多想法。

Example Stackoverflow Link

要读取列类型,您需要加入sys表并获取列类型

SELECT DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 
 TABLE_NAME = 'yourTableName' AND 
 COLUMN_NAME = 'yourColumnName'

获得unpivot表别名后,您应该能够将其与SCHEMA.columns表连接起来并实现逻辑