ID Site
a www.google.com
a
b www.qq.com
b
c www.hodes.com
.
.
.
我有一个像上面那样的表,我想提取的网站值不是空白的,例如:
ID Site
a www.google.com
b www.qq.com
c www.hodes.com
答案 0 :(得分:0)
select * from table where Site <> '' or Site is not null
如果空白的那些总是重复,那么它将起作用。
,否则
select max(id), max(site) from table group by id
应该没问题
答案 1 :(得分:0)
答案 2 :(得分:0)
select
ID,
max(if(trim(site) = '', null, site)) as site
from tbl
group by ID
;
如果每个ID有多个网站,则可以将GROUP_CONCAT
替换为最大值。
答案 3 :(得分:0)
我会想到要从数据库中删除空行。如果情况并非如此,只需将where子句移动到Select
语句。
Delete from TableName where ISNULL(Site, '')=''
答案 4 :(得分:0)
如果你必须为每个id返回一个且只有一个记录,那么你的代码必须 应对每个id的潜在多个记录 - 你需要max()和group by。 我建议:
Select id, max(site)
from table_name
where nvl(site,0) <> 0
group by id
否则,如果您知道您从未遇到过具有相同ID的多个记录:
Select id, site
from table_name
where nvl(site,0) <> 0