2013-02-23 63 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