簡體   English   中英

SQL查詢-別名+不同時期+不同表

[英]SQL Query - aliasing + different periods + different tables

我正在為 oracle 使用蟾蜍,我遇到了不同的問題。

別名 - 當我想兩次使用同一列時?!
假設我們有一個表 x,其中包含 col1、col2、col3。 Col1 包含客戶聯系電話(211,212,213 等)

還有另一個表y ,它有 col1,col4,col5。 兩個表中的 Col1 相等。 Col4 顯示一個數字是主要的還是次要的。

y

(Col1,col4,col5)
(211,Main,v)
(212,Secondary,s)
(213,Secondary,w)

我想做的是如下:

SELECT col2, col1 as mainNumbet, col1 as secondNumber
  FROM x
 WHERE mainNumber IN (SELECT col1 
                        FROM y 
                       WHERE col4 = 'main')
   AND SecondNumber IN (SELECT col1 
                          FROM y 
                         WHERE col4 = "secondary")

但是它說有問題???

您的代碼有幾個問題。

也許這就是你想要的:

SELECT x.col2, 
       CASE WHEN col4 ='main'      THEN x.col1 END AS mainNumber,
       CASE WHEN col4 ='secondary' THEN x.col1 END AS secondNumber, 
FROM x
  JOIN y
    ON x.col1 = y.col1

您沒有說 col2 是什么,但是您從同一張表的同一行中獲取同一列(col1)並嘗試為其分配不同的含義(main_number 和 second_number)

SELECT col2, col1 as mainNumbet, col1 as secondNumber
  FROM x

如果 COL1 在 'y' 上是唯一的,那么它只能是主要的或次要的,所以這應該有效

SELECT col2, col1 as number, (select col4 from y where y.col1=x.col1) type
  FROM x

如果 COL1 在 'y' 上不是唯一的,那么它可以是主要的和次要的,所以這應該有效

SELECT col2, col1 as number, 
  (select col4 from y where y.col1=x.col1 and col4 = 'main' and rownum=1) m_ind,
  (select col4 from y where y.col1=x.col1 and col4 = 'secondary' and rownum=1) s_ind
FROM x

暫無
暫無

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

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