arrays - SQLIte MAX vs Postgresql GREATEST,带字符串
问题描述
根据其他一些帖子,SQLite 中的 max() 函数等效于 Postgresql GREATEST() 函数。有人可以用字符串解释 SQlite max 函数的奇怪行为吗:
select max ('rb','VISA', 'Visa', 'Visa Card1', 'VISA VISA Card', 'Visaaa')
返回“rb”。为什么?!?我希望将“VISA VISA Card”作为最长的字符串作为结果返回......
解决方案
它根据作为字节的字符表示返回最大值(小写的值高于大写的值)。
更改为select max ('rb','vISA', 'Visa', 'Visa Card1', 'VISA VISA Card', 'Visaaa')
,结果是vISA。
重新评论
有没有办法检索最长的字符串?
如果您想要最长的字符串并假设数据位于表的列(在本例中名为mystring)(在本例中名为test),那么您可以使用:-
SELECT mystring FROM test ORDER BY length(mystring) DESC LIMIT 1;
例如
DROP TABLE IF EXISTS test;
CREATE TABLE IF NOT EXISTS test (mystring TEXT);
INSERT INTO test VALUES ('rb'),('VISA'),('Visa Card1'),('VISA VISA Card'),('Visaaa');
SELECT mystring FROM test ORDER BY length(mystring) DESC LIMIT 1;
结果是 :-
- 请注意,如果存在多个具有相同最长长度的字符串,则结果将是任意的(来自最长的字符串)。
推荐阅读
- c# - c#访问OleDB err 80004005
- python - Scipy 稀疏矩阵切片返回 IndexError
- python - 为什么我们不能在生成器中分配默认参数?
- c# - 使用 OWIN SelfHost 时调用 httpclient 会引发 404 响应
- c++ - 使用 ClipboardSetData 函数设置远程机器剪贴板的内容
- android - 如何使用身体发出 android Volley 请求,如下所示
- android - 代号一,在安卓问题上发送短信
- python - Tensorflow - 条件训练
- python - xtensor 将 numpy 数组传递给具有 xt::xtensor 参数类型的函数
- spring-ldap - 我们可以将wiremock与ldap服务一起使用吗?