如何在 sql 查询中创建空白/硬编码列?
Posted
技术标签:
【中文标题】如何在 sql 查询中创建空白/硬编码列?【英文标题】:How can I create a blank/hardcoded column in a sql query? 【发布时间】:2011-07-08 07:54:57 【问题描述】:我想要一个查询,其中的列是硬编码值而不是来自表,可以这样做吗?我基本上需要它作为占位符,稍后我会回来填写。
示例:
SELECT
hat,
shoe,
boat,
somevalue = 0 as placeholder
FROM
objects
然后我稍后会遍历这个查询并填写占位符
在这个例子中 someValue 不是对象中的字段,我需要伪造它。我在冷融合中这样做并使用两个数据源来完成一个查询。我已经尝试了 space() 函数,但无法让它工作。
谢谢。
【问题讨论】:
是的。您可以硬编码要返回的值。 问题是我相信的等号。请参阅下面的答案。 是的,但是somevalue = 0 as placeholder
语法没有意义。按照 Galz 的建议,只需 0 as placeholder
即可。
【参考方案1】:
这应该适用于大多数数据库。您还可以选择一个空白字符串作为额外的列,如下所示:
Select
Hat, Show, Boat, '' as SomeValue
From
Objects
【讨论】:
【参考方案2】:SELECT
hat,
shoe,
boat,
0 as placeholder
FROM
objects
'' as placeholder
用于字符串。
【讨论】:
timestamptz 类型怎么样?【参考方案3】:上面的答案是正确的,我认为是“最佳”答案。但为了尽可能完整,您也可以直接在 CF 中使用 queryAddColumn 执行此操作。
见http://www.cfquickdocs.com/cf9/#queryaddcolumn
同样,在数据库级别执行此操作更有效...但最好了解尽可能多的替代方案(当然是 IMO):)
【讨论】:
【参考方案4】:对于 varchars,您可能需要执行以下操作:
select convert(varchar(25), NULL) as abc_column into xyz_table
如果你尝试
select '' as abc_column into xyz_table
填充后,您可能会遇到与截断相关的错误或空值问题。
【讨论】:
是的,当使用select...into
创建新表时,更明确地说明数据类型和容量非常重要。否则,数据库将使用空字符串来“猜测”目标列的属性。在空字符串的情况下 - 它几乎肯定会得出错误的答案。【参考方案5】:
SELECT
hat,
shoe,
boat,
0 as placeholder -- for column having 0 value
FROM
objects
--OR '' as Placeholder -- for blank column
--OR NULL as Placeholder -- for column having null value
【讨论】:
这是existing answers 的repeat。【参考方案6】:谢谢,在 PostgreSQL 中这适用于 boolean
SELECT
hat,
shoe,
boat,
false as placeholder
FROM
objects
【讨论】:
以上是关于如何在 sql 查询中创建空白/硬编码列?的主要内容,如果未能解决你的问题,请参考以下文章
如何在最终的 TreeSet 中创建硬编码的不区分大小写的值,以便只有“香蕉”而不是“香蕉”作为另一个值 [重复]
如何在 QSqlQueryModel 中获取硬编码 QCheckBoxes 的状态?