我在與列名的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 ?
我在與列名的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 ?
不,你堅持
select a, c, d, e, g, h from TableA
select A, C, D, E, G, H from TableA
你不能做到這一點。它是'*'或只是你指定的字段。這是一個大問題嗎?還是僅僅是你想要一些「整潔」?
不,我們沒有。你必須使用
SELECT A, C, D, E, G, H
FROM TableA
如果你問我,這很好。 SELECT *足夠邪惡。
我並不確定,但它的絕對是更好地顯式指定您要選擇的列。這使得你的表的任何潛在的變化更容易生活在一起,你可以使用別名等
select A, C, D, E, G, H from TableA
,或者創建一個視圖,並從選擇,如下圖所示:
CREATE VIEW vTableA
as
select A, C, D, E, G, H from TableA
這一點在屁股疼痛,我去這個論壇上找到另一種方式來做到這一點,但是,你堅持定義每一列。你可以抓住所有列,不過,做這樣的事情:
select ',[' + column_name + ']'
from information_schema.columns
where table_name = 'your_table_name'
這樣就可以排除你不想很快的列。當你有50列以上時,它特別有用。
+1爲「SELECT * is evil」。 – 2009-12-04 04:55:16