Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择不同的子字符串,如muddleup howto_Sql_Select_Distinct_Substring_Max - Fatal编程技术网

SQL选择不同的子字符串,如muddleup howto

SQL选择不同的子字符串,如muddleup howto,sql,select,distinct,substring,max,Sql,Select,Distinct,Substring,Max,我有一个表,它的字段类似于: ANIMAL ======== FISH 54 FISH 30 DOG 12 CAT 65 CAT 09 BIRD 10 FISH 31 DOG 10 稍后,该区域可能会添加新的动物,例如 GOAT 72 DOG 20 我想做的是做一个SELECT查询,每个动物名称返回一个唯一的行,返回一个数据集,每个动物类型返回一行,我可以稍后解析该数据集以生成表中存在的动物列表 所以,在魔术之后,我会 FISH 54 DOG 12 CAT 65 BIRD 10 GOAT 7

我有一个表,它的字段类似于:

ANIMAL
========
FISH 54
FISH 30
DOG 12
CAT 65
CAT 09
BIRD 10
FISH 31
DOG 10
稍后,该区域可能会添加新的动物,例如

GOAT 72
DOG 20
我想做的是做一个
SELECT
查询,每个动物名称返回一个唯一的行,返回一个数据集,每个动物类型返回一行,我可以稍后解析该数据集以生成表中存在的动物列表

所以,在魔术之后,我会

FISH 54
DOG 12
CAT 65
BIRD 10
GOAT 72
…我将从中列出我的清单

到目前为止,我一直在混乱地处理子查询、
selectdistinct
SUBSTRING()
,但我觉得我得到的任何结果都可能与蜂群思维的威力相比相形见绌。有人能帮忙吗

更新

如果有帮助的话,我失败的尝试说明了我想做什么:

SELECT DISTINCT substring(animal,1,4) FROM table;
只是现在我没有全名,只有一个子串(

为什么不

SELECT id, animal, value FROM table GROUP BY animal, id HAVING id = MIN(id)
这将得到表中动物的列表,每个动物都有第一个输入的值

如果不需要,请选择值,然后执行以下操作:


按动物从表组中选择动物这将适用于SQL Server。如果使用其他方法,则需要计算出与和对应的函数。左键当然可以替换为子字符串

SELECT Name, Max(No)
FROM Table
Group By Name
select distinct left(T.Animal, charindex(' ', T.Animal, 1)-1)
from YourTable as T
结果:

-------------------------
BIRD
CAT
DOG
FISH
在MySQL中,您将使用和。 (代码未测试)


您还可以使用以下内容获取动物名称列表:

SELECT DISTINCT SUBSTRING_INDEX(animal, ' ', 1) FROM table_name;

如果你需要表中最大的数字,请使用@Parkyprg。如果你根本不需要这个数字,请使用我的。我需要你的,但只需要每组的第一个代码。这是一个很好的开始,尽管我会去看看书-也许
max
会派上用场。你有每行的ID吗?当然有(自动递增主键参考).我知道你要做什么了,但是很抱歉还是不行,
中有一些错误,
…而且我不认为我需要在开始时选择
字段?会不断调整…越来越近。这正是我要找的…但我正在运行MySQL。你已经做到了,我的好朋友。非常感谢。我一直都是b今天我用了我所有的投票,但你也会得到+1。事实上,你现在得到了一个。:)过了一会儿,回到这一点,这段代码非常有用,再次感谢。我如何选择计数?这也是一个很好的解决方案,虽然是通用的(我最初的问题更具体)。但后来又回来了,仍然很有帮助+1好极了!以下是子字符串索引的文档:
SELECT DISTINCT SUBSTRING_INDEX(animal, ' ', 1) FROM table_name;