簡體   English   中英

比較同一行SQL的兩列

[英]Compare two columns of same row SQL

我有一個表樣本,看起來像:

KeyID   Name    ID    Location  
--------------------------------------------
20063   A DA    20439     AEP  DA           
20063   A DA    20063     APS DA            
20063   A DA    20032     APS RT          
20063   A RT    20032     APS RT          
20063   B RT    20032     APS DA Legacy       

僅選擇NameLocation都以DART結尾的行。

例外:如果位置以legacy結束,則無論如何都包括row。

          20063 A DA    20439     AEP  DA           
          20063 A DA    20063     APS DA    
          20063 A RT    20032     APS RT
          20063 B RT    20032     APS DA Legacy 

如何比較此SQL的同一行的列?

這樣的事情在MySQL中應該可以使用,但在其他SQL中也很有可能:

SELECT * FROM TABLE
WHERE location like '% Legacy'
    OR (
        SUBSTRING(name,-2)='DA' AND SUBSTRING(location,-2)='DA'
        OR
        SUBSTRING(name,-2)='RT' AND SUBSTRING(location,-2)='RT'
    )

如果使用Microsoft SQL,則可能必須執行以下操作。 反轉字符串,從第一個字符開始使用長度為2的子字符串提取前兩個字符,然后再次反轉以正確的方式將其放回去。

SELECT * FROM TABLE 
WHERE location like '% Legacy'
     OR
     (
            reverse(substring(reverse(name),1,2))='DA' 
            AND 
            reverse(substring(reverse(location),1,2))='DA'
        OR
            reverse(substring(reverse(name),1,2))='RT' 
            AND 
            reverse(substring(reverse(location),1,2))='RT'
     )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM