[英]SQL, joining the same table
我有一個table
與列code
和document
。 列code
可以具有字母數字值(僅字母)和/或數字值(僅數字)。 在模型中,每個數字code
都有一個字母數字等效code
。 以下記錄代表這種情況的示例(格式為( document
, code
);( document
, code
):
(12345678900,ABC);(12345678900,999)
但是,字母數字code
可能並不總是具有等效的數字code
,因此下面的示例表示一種情況,我們有3條不同的記錄
(12345678900,ABC);(12345678900,999);(00987654321,XYZ);(11111111111,DEF)
考慮到這一點,我想做的是以下操作:搜索記錄時始終使用字母數字code
s,當我有一個等效數字時,我希望結果是數字1,但是當alpha不沒有等效的數字,我想要字母數字code
。
例如,如果我執行以下選擇,我將得到以下結果:
SELECT code FROM table WHERE code = 'ABC'
->結果:999 SELECT code FROM table WHERE code = 'DEF'
->結果:DEF SELECT code FROM table WHERE code = 'XXX'
->結果:(空白) 我感謝有人可以幫助我。
問候,
AMR
嘗試這個
SELECT
f1.doc
, COALESCE(f2.code, f1.code) code
FROM foo f1
LEFT JOIN(
SELECT doc, code
FROM foo
WHERE code <> @code
) f2 ON f2.doc = f1.doc
WHERE f1.code = @code
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.