通配符如何在sql中运行。如果我select * from table
它会给出所有字段。但如果我做select a* from table
则会出错。它不应该给所有以a开头的字段吗?
我有点困惑。
答案 0 :(得分:4)
SELECT * FROM tableName
字面意思是“从tableName中选择所有列”。
菲利普·格雷厄姆在他要求使用a.*
通配符可帮助您搜索您不确定的字符串。这些几乎总是与LIKE
关键字一起使用,并放入WHERE
子句或搜索CASE
语句。
有两个通配符 - %
和_
。
%
用于查找长度为0或更多的任何字符串。
如,
SELECT firstName
FROM persons
WHERE UPPER(firstName) LIKE 'J%'
这将从firstName
表返回所有persons
,其中firstname以字母J
开头。这将返回“Jason”,“James”,“Josh”,“Jessica”等等。
请注意UPPER
函数用于消除区分大小写。
接下来,您可以使用_
字符查找是否存在单个字符。
SELECT firstName
FROM persons
WHERE UPPER(firstName) LIKE 'J_M__'
这将返回“James”,“Jimmy”,“Jamos”,“Jxmx”并过滤掉任何“Jason”,“Jaguar”等。
有关详情,请点击here
答案 1 :(得分:3)
您可以使用。*,其中a是表的名称。例如
select a.* from a left join b on a.id = b.id
您只会返回a中的字段,而不会返回b
答案 2 :(得分:3)
如果要在SQL中使用通配符,则需要使用LIKE
键入要过滤的列。
SELECT *
FROM table
WHERE column_name LIKE 'a%';
这将为您提供以该列上的“a”开头的所有内容。
如果您不想要所有列,则必须在查询中明确指定所需的每个列的名称。
SELECT LastName, FirstName, Address
FROM table
因此,如果您想要所有以'a'开头的字段,则必须在SELECT语句中为所有以'a'开头的字段命名。
希望这会有所帮助。