簡體   English   中英

Sql Bigquery - 將兩列連接成一個新列

[英]Sql Bigquery - concat two columns into a new column

我想將下面顯示的兩列合並為一個新列。

A_Bill_ID B_BILL_ID

我正在使用這個查詢:

SELECT
CONCAT( A_Bill_ID , ' ', B_BILL_ID ) AS BILL_ID
FROM
`table.tmp_140222`

從這個查詢中,結果將是這樣的。

在此處輸入圖像描述

我的問題是我只想連接沒有相似值的列,這樣新的列值就不會重復兩次。 從上面的結果來看,ID 是重復的,因為兩列都具有相同的值。

誰能幫我?

謝謝

select if (
    a_bill_id = b_bill_id, 
    a_bill_id, 
    concat(a_bill_id , ' ', b_bill_id )
  ) as bill_id
from your_table    

... 顯示 null 值....

select if (
    a_bill_id = b_bill_id or (a_bill_id = b_bill_id) is null,
    coalesce(a_bill_id, b_bill_id),
    concat(a_bill_id , ' ', b_bill_id )
  ) as bill_id
from your_table

您可以使用這樣的案例陳述 -

SELECT
case when A_Bill_ID = B_BILL_ID then a_bill_Id 
else CONCAT(A_Bill_ID , ' ', B_BILL_ID ) 
end AS BILL_ID
FROM `table.tmp_140222`

如果初始列中有 Null 個值,您可以使用 IFNULL 或 COALEASE 將其替換為空字符串。 但在這種情況下,我建議在沒有分隔符的情況下使用它或編寫多個“when”語句以避免在最后一列中出現尾部空格 -

SELECT
case when A_Bill_ID = B_BILL_ID then a_bill_Id 
else CONCAT(IFNULL(A_Bill_ID), ''), "", IFNULL(B_BILL_ID, ''))
end AS BILL_ID
FROM `table.tmp_140222`

暫無
暫無

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

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