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