gpt4 book ai didi

SQL 星号(*) 所有可能的用途

转载 作者:行者123 更新时间:2023-12-03 18:36:33 25 4
gpt4 key购买 nike

我有一个简单的问题。我想列出我们可以使用关键字星号(或星号)* 的所有场景。

我只知道这些场景:

Select * from Customers;
Select Count(*) from Customers;
Select Customers.quantity * Customers.price from Customers;

我在互联网上搜索了所有内容,但没有找到任何其他用例。

此外,我们可以在选择查询中将 * 与列一起使用的场景。

编辑 :好的,因为@Lucas Eder 要求知道我的用例,这里是。我有一个接受 SQL 查询并将其存储在数据库中的程序。在存储之前,它会验证不允许创建 select *Count(*)查询。除此之外,它应该允许所有其他查询。所以这就是我想知道其他场景的原因 *使用,以便我可以将它们列入白名单。

最佳答案

有趣的问题!
这是什么 jOOQ了解各种 SQL 方言(查看其来源):
重复你的(有一些评论):

-- Unqualified asterisk
SELECT * FROM t;

-- Unqualified asterisk with useful Google BigQuery extension
SELECT * EXCEPT (a, b) FROM t

-- Asterisk in COUNT
SELECT COUNT(*) FROM t;

-- Multiplication operator for numbers
SELECT a * b FROM t;

-- Multiplication operator for intervals / numbers
SELECT INTERVAL 1 DAY * 3 FROM t;
其他情况 jOOQ 知道:
-- Qualified asterisk
SELECT t.* FROM t;

-- Multiline comment syntax
SELECT /* important column */ a FROM t;

-- Oracle hint syntax
SELECT /*+FIRST_ROWS*/ a FROM t;

-- Old SQL Server outer join syntax (no longer supported)
SELECT * FROM t, u WHERE t *= u;

-- Oracle precision / scale wildcard
CREATE TABLE t (a NUMBER(*), b NUMBER(*, 2));

-- PostgreSQL syntax for case insensitive pattern matching (ILIKE)
-- (there are many more operators)
SELECT 'abc' ~~* 'A%'
我知道的其他情况:
-- MATCH_RECOGNIZE pattern matching
SELECT * FROM t MATCH_RECOGNIZE ( ... PATTERN X Y* Z ... )

-- Oracle 21c's projecting everything into JSON
SELECT JSON_OBJECT(*) FROM t
字符串文字内容,也被指定和解析:
-- Regular expressions (the asterisk is in a string literal, but it's still worth noting)
SELECT regexp_replace(a, 'a*', '') FROM t;

-- Similar predicate (again, it's in a string literal but the format is specified)
SELECT 'abc' SIMILAR TO 'a*'

-- JSON Path contents (there are quite a few possible asterisks here)
SELECT JSON_QUERY(col, '$.*') FROM t;

-- XPath contents
SELECT XMLQUERY('/x/*' PASSING t.xmldoc) FROM t
深奥案例 :
ISO/IEC 9075-2:2016(E) SQL 标准在 21.6 [原文如此!]

<Fortran type specification> ::=CHARACTER [ <asterisk> <character length> ] [ CHARACTER SET[ IS ] <character set specification> ]


是的。你自找的!

关于SQL 星号(*) 所有可能的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61187871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com