【问题标题】:Change some fields in a query更改查询中的某些字段
【发布时间】:2023-01-18 21:41:40
【问题描述】:

我正在使用以下查询来获取服务器列表:

select 
                                DISTINCT upper("Local_Hostname_U")

                            from 
                                "Services_Inventory_610"
                            where 
                                CASE
                                   --WHEN upper("Local_Hostname_U")='EAP-WEBSERVICES.WEB.INPS' THEN upper("Local_Hostname_U")='WEBINPS59'
                                   WHEN "TMZDIFF"=-3600 THEN  ("Interval_Begin_Time">=1230110230000000 and "Interval_Begin_Time"<1230111230000000)
                                   WHEN "TMZDIFF"=-7200 THEN  ("Interval_Begin_Time">=12301100000000 and "Interval_Begin_Time"<1230110230000000)
                                END
                                order by upper("Local_Hostname_U") 

我得到以下列表:

CUSTMON03.SERVIZI.INPS
EAP-WEBSERVICES.WEB.INPS
JAVAZAPPWS-P01
JAVAZAPPWS-P02
JAVAZAPPWS-P03
JAVAZAPPWS-P04
JAVAZAPPWS-P05
JAVAZAPPWS-P06
JAVAZAPPWS-P07
JAVAZAPPWS-P08
LHEWBSWAS01
LHEWBSWAS02
LHEWBSWAS03
LHEWBSWAS04
LHEWBSWAS05
LHEWBSWAS06
LHEWBSWAS07
LHEWBSWAS08
LHEWBSWAS09
LHEWBSWAS10
LHEWBSWAS11
LHEWBSWAS12
WEBINPS120.SERVIZI.INPS
WEBINPS52
WEBINPS53
WEBINPS54
WEBINPS55
WEBINPS56.SERVIZI.INPS
WEBINPS58
WEBINPS62.SERVIZI.INPS

有没有办法用 WEBINPS59 替换 EAP-WEBSERVICES.WEB.INPS 并从同一查询中的列表中删除字符串“.SERVIZI.INPS”?

【问题讨论】:

    标签: sql


    【解决方案1】:

    尝试这个:

    select  DISTINCT REPLACE(upper("Local_Hostname_U"), 'EAP-WEBSERVICES.WEB.INPS', 'WEBINPS59 ')
    from "Services_Inventory_610"
    where 
        CASE
        --WHEN upper("Local_Hostname_U")='EAP-WEBSERVICES.WEB.INPS' THEN upper("Local_Hostname_U")='WEBINPS59'
            WHEN "TMZDIFF"=-3600 THEN  ("Interval_Begin_Time">=1230110230000000 and "Interval_Begin_Time"<1230111230000000)
            WHEN "TMZDIFF"=-7200 THEN  ("Interval_Begin_Time">=12301100000000 and "Interval_Begin_Time"<1230110230000000)
        END
        AND "Local_Hostname_U" NOT LIKE '%.SERVIZI.INPS'
    order by upper("Local_Hostname_U") 
    

    【讨论】:

      【解决方案2】:

      如果您使用 postgreSQL,请尝试使用 split_part:

        select DISTINCT SPLIT_PART(upper("Local_Hostname_U"), '.',1)
                                      from 
                                          "Services_Inventory_610"
                                      where 
                                          CASE
                                             --WHEN upper("Local_Hostname_U")='EAP-WEBSERVICES.WEB.INPS' THEN upper("Local_Hostname_U")='WEBINPS59'
                                             WHEN "TMZDIFF"=-3600 THEN  ("Interval_Begin_Time">=1230110230000000 and "Interval_Begin_Time"<1230111230000000)
                                             WHEN "TMZDIFF"=-7200 THEN  ("Interval_Begin_Time">=12301100000000 and "Interval_Begin_Time"<1230110230000000)
                                          END
                                          order by upper("Local_Hostname_U")
      

      这个 split_part 函数只显示.之前的内容

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-04
        • 1970-01-01
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-09
        • 2020-06-26
        相关资源
        最近更新 更多