如何在 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 查询中创建空白/硬编码列?的主要内容,如果未能解决你的问题,请参考以下文章

如何选择几个硬编码的 SQL 行?

如何在最终的 TreeSet 中创建硬编码的不区分大小写的值,以便只有“香蕉”而不是“香蕉”作为另一个值 [重复]

如何在 QSqlQueryModel 中获取硬编码 QCheckBoxes 的状态?

尽量不在 SQL 查询中硬编码日期范围(Python、SQL 服务器)

UIWebView 保持空白,直到我对 URL 进行硬编码

SQL 查询:分区计数因变量或硬编码参数而异