[英]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
僅選擇Name
和Location
都以DA
或RT
結尾的行。
例外:如果位置以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.