簡體   English   中英

SQL,聯接同一表

[英]SQL, joining the same table

我有一個table與列codedocument code可以具有字母數字值(僅字母)和/或數字值(僅數字)。 在模型中,每個數字code都有一個字母數字等效code 以下記錄代表這種情況的示例(格式為( documentcode );( documentcode ):

(12345678900,ABC);(12345678900,999)

但是,字母數字code可能並不總是具有等效的數字code ,因此下面的示例表示一種情況,我們有3條不同的記錄

(12345678900,ABC);(12345678900,999);(00987654321,XYZ);(11111111111,DEF)

考慮到這一點,我想做的是以下操作:搜索記錄時始終使用字母數字code s,當我有一個等效數字時,我希望結果是數字1,但是當alpha不沒有等效的數字,我想要字母數字code

例如,如果我執行以下選擇,我將得到以下結果:

  1. SELECT code FROM table WHERE code = 'ABC' ->結果:999
  2. SELECT code FROM table WHERE code = 'DEF' ->結果:DEF
  3. 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.

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