2009-12-03 28 views
4

我在與列名的MS-訪問與HSQL查詢來選擇不同的兩列

TableA 

A B C D E F G H 

我怎麼可以編寫一個查詢來選擇除了B和F的所有列中的表,表中的所有列列。查詢結果應該是

A C D E G H 

我們有沒有這樣的事情

select * from TableA except B, F ? 

回答

2

不,你堅持

select a, c, d, e, g, h from TableA 
1
select A, C, D, E, G, H from TableA 
0

你不能做到這一點。它是'*'或只是你指定的字段。這是一個大問題嗎?還是僅僅是你想要一些「整潔」?

3

不,我們沒有。你必須使用

SELECT A, C, D, E, G, H 
FROM TableA 

如果你問我,這很好。 SELECT *足夠邪惡。

+1

+1爲「SELECT * is evil」。 – 2009-12-04 04:55:16

1

我並不確定,但它的絕對是更好地顯式指定您要選擇的列。這使得你的表的任何潛在的變化更容易生活在一起,你可以使用別名等

1
select A, C, D, E, G, H from TableA 

,或者創建一個視圖,並從選擇,如下圖所示:

CREATE VIEW vTableA 
as 
select A, C, D, E, G, H from TableA 
0

這一點在屁股疼痛,我去這個論壇上找到另一種方式來做到這一點,但是,你堅持定義每一列。你可以抓住所有列,不過,做這樣的事情:

select ',[' + column_name + ']' 
from information_schema.columns 
where table_name = 'your_table_name' 

這樣就可以排除你不想很快的列。當你有50列以上時,它特別有用。