首页 > 解决方案 > MsSql 根据结构获取空白记录

问题描述

有没有办法SHOW COLUMNS FROM xxtable从表中的字段的空白记录中接收回来?

目前,如果满足我的搜索条件,我可以获得记录返回 - 执行以下操作时:

SELECT * FROM xxtable WHERE fieldA = "blah"

但如果没有匹配,我想收到一个“空”记录——不是空的,但值为空白。

我正在从 PHP 函数中调用返回到 JavaScript,因此我需要返回以提供 JSON 格式的记录。

我可以检查选择是否没有返回任何内容,但想知道是否有一种方法可以在每个步骤中创建一个具有正确字段名称的空记录。

标签: javascriptphpsql-serverdatatable

解决方案


不,不是。您对数据类型的列有什么期望date?那么一个int或一个decimal呢?''既不是日期也不是数字,但它会被隐式转换为列的数据类型。例如:

SELECT 1
UNION ALL
SELECT '';

请注意,''返回 0,而不是''NULL。那是因为CONVERT(int,'') = 0。对于 a datethen 值19000101将被返回:

SELECT CONVERT(date,'20180101')
UNION ALL
SELECT '';

因此,您可以执行类似的操作

SELECT '' AS [Column1Name],
       '' AS [Column2Name],
       '' AS [Column3Name],
       '' AS [Column4Name],
       ...

但是,这样做的问题是,如果基础表中的列发生更改,这将无法反映。此外,列数据类型不具有反射性这一事实也不是一个好主意。

老实说,我认为您需要弄清楚如何处理表示层中没有行的数据集,而不是通过创建错误的数据集来尝试解决它。


推荐阅读