我有一个包含列的表
Prefix | CR
----------------------------------------
g | ;#WR_1;#WR_2;#WR_3;#WR_4;#
v | ;#WR_3;#WR_4;#
j | WR_2
m | WR_1
d | ;#WR_3;#WR_4;#
f9 | WR_3
Run Code Online (Sandbox Code Playgroud)
我想从CR列WHERE中检索数据,它具有最长的文本字符串,即在当前表中;#WR_1; #WR_2; #WR_3; #WR_4;#.我正在使用
SELECT max(len(CR)) AS Max_Length_String FROM table1
Run Code Online (Sandbox Code Playgroud)
但它重新回归
Max_Length_String
----------------------------------------
26
Run Code Online (Sandbox Code Playgroud)
但我需要的不是长度(26),我想这样
Max_Length_String
----------------------------------------
;#WR_1;#WR_2;#WR_3;#WR_4;#
Run Code Online (Sandbox Code Playgroud)
Gor*_*off 77
最简单的方法是:
select top 1 CR
from table t
order by len(CR) desc
Run Code Online (Sandbox Code Playgroud)
请注意,如果有多个具有相同的最长长度,则只返回一个值.
Tho*_*ner 14
您可以:
SELECT CR
FROM table1
WHERE len(CR) = (SELECT max(len(CR)) FROM table1)
Run Code Online (Sandbox Code Playgroud)
在发布此消息后,我刚收到一年多的赞成票,我想补充一些信息.
DISTINCT到我的query(SELECT DISTINCT CR FROM ...)中,以便只获取每个值一次.这将是一个排序操作,但仅限于已找到的少数记录.再一次,没什么大不了的.LEN字符串通常不会使这些查询变慢.你可以这样得到它:
SELECT TOP 1 CR
FROM tbl
ORDER BY len(CR) DESC
Run Code Online (Sandbox Code Playgroud)
但我敢肯定,有一种更优雅的方式来做到这一点
这是“postgres 中最长的字符串”谷歌搜索的第一个结果,所以我会把我的答案放在这里,供那些寻找 postgres 解决方案的人使用。
SELECT max(char_length(column)) AS Max_Length_String FROM table
postgres 文档:http : //www.postgresql.org/docs/9.2/static/functions-string.html
对于 Postgres:
SELECT column
FROM table
WHERE char_length(column) = (SELECT max(char_length(column)) FROM table )
Run Code Online (Sandbox Code Playgroud)
这将为您提供字符串本身,针对@Thorsten Kettner 回答中的 postgres 进行修改
对于 Oracle 11g:
SELECT COL1
FROM TABLE1
WHERE length(COL1) = (SELECT max(length(COL1)) FROM TABLE1);
Run Code Online (Sandbox Code Playgroud)
通过两个查询就可以实现这一点。这是针对mysql的
//will select shortest length coulmn and display its length.
// only 1 row will be selected, because we limit it by 1
SELECT column, length(column) FROM table order by length(column) asc limit 1;
//will select shortest length coulmn and display its length.
SELECT CITY, length(city) FROM STATION order by length(city) desc limit 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81319 次 |
| 最近记录: |