2013-02-23 64 views
2

通配符如何在sql中工作?如果我做select * from table它給所有的領域。但如果我做select a* from table它會給出錯誤。它不應該給所有的領域開始一個? 我有點困惑。sql中的通配符

+10

沒有。這不是它的工作原理。唯一的規則是'*'意味着表中的所有列。 – 2013-02-23 23:38:11

回答

4

SELECT * FROM tableName字面意思是「從tableName中選擇所有列」。

菲利普·格雷厄姆是對他的答案,他要求用a.*

通配符幫助您搜索哪些你不知道的字符串。這些幾乎總是與LIKE關鍵字一起使用,並放入WHERE子句或搜索CASE語句。

有兩個通配符 - %_

%用於查找長度爲0或更長的任何字符串。 例如,

SELECT firstName 
    FROM persons 
WHERE UPPER(firstName) LIKE 'J%' 

這將返回所有firstName從那裏姓以字母J開始persons表。這將返回「傑森」,「詹姆斯」,「喬希」,「傑西卡」等等。請注意0​​函數用於消除大小寫敏感。

接下來,您可以有一個_字符,用於查找是否存在單個字符。

SELECT firstName 
    FROM persons 
WHERE UPPER(firstName) LIKE 'J_M__' 

這將返回 「詹姆斯」, 「吉米」, 「Jamos」, 「Jxmx」,並過濾掉任何 「傑森」, 「美洲虎」 等

欲瞭解更多信息請點擊here

3

您可以使用。*,其中a是表的名稱。例如,在

select a.* from a left join b on a.id = b.id 

你會從一個只返回字段,但不能從B

3

如果想使用SQL外卡,您需要在您要使用LIKE過濾列密鑰。

SELECT * 
FROM table 
WHERE column_name LIKE 'a%'; 

這會給你所有以'a'開頭的東西。

如果您不想要所有列,則必須明確指定您想要查詢的每個列的名稱。

SELECT LastName, FirstName, Address 
FROM table 

所以,如果你想要以'a'開頭的所有字段,你必須命名SELECT語句中以'a'開頭的所有字段。

希望這會有所幫助。

+0

這不回答OP的問題! – fastcodejava 2013-02-24 21:38:04

+1

@fastcodejava我正在鍵入「SQL中的通配符」問題,而不是問題的原因。我確實改變了答案。 – benRollag 2013-02-26 19:37:24