SQL根据某个字段是否互相包含去重

SQL去重:根据某个字段是否互相包含去重,如果包含则显示长的

img

有帮助的话 采纳一下

SELECT t1.*
FROM table t1 
WHERE NOT EXISTS (
  SELECT 1 FROM table t2
  WHERE t2.field LIKE CONCAT('%', t1.field, '%')
    AND LENGTH(t2.field) > LENGTH(t1.field)  
)

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7539884
  • 这篇博客你也可以参考下:【学习】 SQL语句学习 排序 并以排序结果作为一个字段添加到查询结果中
  • 除此之外, 这篇博客: sql 语句计算两经纬度之间的距离中的 利用sql语句计算两经纬度之间距离: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  //字段说明:
     #{latitude}  ==> 表示纬度
     #{longitude}  ==> 表示经度
     PI()  ===>  代表 π 3.14  ...........
     COS  ==>  COS 函数计算余弦值
     SIN  ==>  SIN 函数计算正弦值
     ACOS ==>  ACOS 函数计算反余弦值
     
     select top 20 xmbh,xmmc,client_address,latitude,longitude,
     (ACOS(SIN(#{latitude} * PI() / 180) * SIN(latitude * PI() / 180) +
     COS(#{latitude} * PI() / 180) * COS(latitude* PI() / 180) *
     COS(#{longitude} * PI() / 180 - longitude* PI() / 180)) * 6378.14) as distance
     from ERP_HTZY
     order by distance
    

    都看到这了,点个赞再走呗!


  • 您还可以看一下 张旭老师的【造物者】手把手带你做快递管理系统课程中的 【造物者】第九节·快递SQL语句编写小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    ChatGPT是一种能够进行自然语言对话的智能机器人。它可以根据输入的问题或需求,以自然语言的形式给出相应的回应或解决方案。

    根据提供的参考资料,可以看到其中涉及到了两个场景的问题,分别是数据库SQL编写和时间处理。具体的解决方案如下:

    场景一:数据库SQL编写 在这个场景中,我们需要进行分组统计数量,并同时统计总计数。例如,我们可以使用WITH ROLLUP函数来实现。

    WITH ROLLUP可以根据指定的分组字段进行统计,并在结果中添加总计行,其中总计行的分组字段值为NULL。

    以下是一个示例代码,展示如何使用WITH ROLLUP函数:

    SELECT column1, column2, COUNT(*) AS count
    FROM table
    GROUP BY column1, column2 WITH ROLLUP;
    

    在上述代码中,column1和column2是需要分组统计的字段,通过使用WITH ROLLUP关键字,可以在结果中添加一个总计行。

    如果总计行中的NULL值需要替换为字符串,可以使用COALESCE()函数,例如:

    SELECT COALESCE(column1, 'Total') AS column1, COUNT(*) AS count
    FROM table
    GROUP BY column1 WITH ROLLUP;
    

    这样,总计行中的NULL值将被替换为字符串'Total'。

    场景二:时间处理 在这个场景中,我们需要查询当前日期所在月份的数据统计,并设置时间范围为该月的第一天到最后一天。

    以下是一个示例Java代码,展示如何实现该功能:

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    
    public class TimeProcessing {
        public static void main(String[] args) {
            // 获取当前日期
            LocalDate currentDate = LocalDate.now();
            // 获取当前月份的第一天
            LocalDate firstDayOfMonth = currentDate.withDayOfMonth(1);
            // 获取当前月份的最后一天
            LocalDate lastDayOfMonth = currentDate.withDayOfMonth(currentDate.lengthOfMonth());
    
            // 将日期格式化为指定的字符串格式
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            String startDate = firstDayOfMonth.format(formatter);
            String endDate = lastDayOfMonth.format(formatter);
    
            System.out.println("时间范围:" + startDate + " - " + endDate);
        }
    }
    

    上述代码中,我们使用了Java的LocalDate类和DateTimeFormatter类来进行日期处理。首先获取当前日期,然后通过调用withDayOfMonth方法获取当前月份的第一天和最后一天,最后使用DateTimeFormatter类将日期格式化为指定的字符串格式。

    通过以上解决方案,可以实现对数据库SQL编写和时间处理的需求。如果有其他问题或需求,可以具体说明,我将尽力给出相关的解决方案。