2011-03-03 90 views
28

我想要一个不是来自表的硬编码值的列的查询,可以这样做吗?我需要它基本上是为我准备以后回来,并填写占位符如何在sql查询中创建空白/硬编码列?

例如:

SELECT 
hat, 
shoe, 
boat, 
somevalue = 0 as placeholder 
FROM 
objects 

然后我会通过这个查询循环后并填写占位符

在这个例子中someValue不是对象中的字段,我需要伪造它。我在Coldfusion中使用这两个数据源来完成一个查询。我试过了space()函数,但一直无法使它工作。

谢谢。

+0

问题是我相信的等号。请参阅下面的答案。 – 2011-03-03 19:52:54

+0

是的。您可以对要返回的值进行硬编码。 – 2011-03-03 19:52:44

+0

是的,但'somevalue = 0作为占位符'语法没有意义。 Galz建议只需'作为占位符'即可。 – Rob 2012-08-14 19:40:07

回答

71
SELECT 
    hat, 
    shoe, 
    boat, 
    0 as placeholder 
FROM 
    objects 
字符串

而且'' as placeholder

+0

简单明了,谢谢 – Biondo86 2016-06-23 11:59:22

8

这应该适用于大多数数据库。您也可以选择一个空字符串作为额外的列如下所示:

Select 
    Hat, Show, Boat, '' as SomeValue 
From 
    Objects 
1

上面的答案是正确的,我认为是“最好”的答案。但是为了尽可能完整,您还可以使用queryAddColumn在CF中直接执行此操作。

http://www.cfquickdocs.com/cf9/#queryaddcolumn

再次,这是更有效的在数据库级别做...但它是很好的了解尽可能多的选择尽可能的(IMO,当然):)

2

对于VARCHAR处理,你可能需要做这样的事情:

select convert(varchar(25), NULL) as abc_column into xyz_table 

如果您尝试

select '' as abc_column into xyz_table 

一旦填充,您可能会收到与截断相关的错误或空值的问题。

+0

是的,当使用'select ... into'创建一个新表时,重要的是要更加明确数据类型和容量。否则,数据库将使用空字符串来“猜测”目标列的属性。在空字符串的情况下 - 它几乎肯定会提出错误的答案。 – Leigh 2015-03-12 19:49:49

-1
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 
+1

这是[现有答案](http://stackoverflow.com/a/29017794/104223)[重复](http://stackoverflow.com/a/5185769/104223)。 – Leigh 2016-02-25 18:31:13