簡體   English   中英

SQL查詢基於同一表列的一行的兩個值

[英]SQL query for two values of one row based off same table column

我希望基於SQL表中的同一列,而在報告的一行中有兩列。

例如,在報告中,它應該類似於:

ID | Reason       | SubReason
1  | Did not like | Appearance

在SQL表中,它類似於:

ID | ReturnReason
1  | Did not like
1  | XX*SR*Appearance
1  | XX - TestData
1  | XX - TestData2

SubReason列是新添加的,當前的SQL查詢類似於:

SELECT ID, ReturnReason AS 'Reason'
FROM table
WHERE LEFT(ReturnReason,2) NOT IN ('XX')

現在,我想在SubReason的SELECT語句中添加一列,如果*SR*在值中,則該值應為該值。 但是,這將不起作用,因為它的值中也帶有'XX' ,當前的WHERE子句省略了該值。

SELECT t.ID, t.ReturnReason AS 'Reason',
SUBSTRING(t1.ReturnReason,7,10000) as 'SubReason '
FROM t
LEFT JOIN t as t1 on t.id=t1.id and t1.ReturnReason LIKE 'XX*SR*%'
WHERE t.ReturnReason NOT LIKE 'XX%'

SQLFiddle演示

暫無
暫無

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

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