2011-03-03 67 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