2014-09-02 35 views
0

行,所以我有2列:買方 - 訂單如何處理字符串不屬於一個組,然後使另一個列空白?

我怎樣寫一個case語句顯示:

case when purchaser is blank, then orders is blank 

我試圖

case when purchaser = ' ' then orders = ' ' else orders end as OrdersEnd 
+0

所以我有一堆無效的訂單,如果他們不屬於某個買家。我想保留表格中無效的訂單。我目前的表格現在有很多訂單,只有一些附有購買者,有些沒有購買者。 – Pine 2014-09-02 15:25:29

+1

哪個平臺? – Hogan 2014-09-02 15:25:52

+0

SQL Mgnt Studio – Pine 2014-09-02 15:27:33

回答

1

正確的語法如下:

SELECT 
    ... 
, CASE WHEN purchaser = '' THEN '' ELSE orders END AS OrdersEnd 
FROM ... 

請注意,「購買者爲空」可能意味着「爲空或空」。在這種情況下,語法應爲

CASE WHEN purchaser is NULL OR purchaser = '' THEN '' ELSE orders END AS OrdersEnd 
0

試試這個:

case when purchaser = '' then '' else orders end as OrdersEnd 
0

「空白」 可能意味着NULL或空格。您沒有提及數據庫,但以下幾項最適用:

(case when purchase is null or replace(purchaser, ' ', '') = '' then ' ' 
     else orders 
end) as OrdersEnd 
+0

非常棒!謝謝大家! – Pine 2014-09-02 16:04:52

0

您需要檢查空值和只有空格的購買者。

可能還有其他的情況下,當購買者無效......你可以添加爲更多的WHEN部分:

SELECT 
    CASE WHEN purchaser is null THEN '' 
     WHEN TRIM(purchaser) = '' THEN '' 
     ELSE orders END as Orders 
FROM table 

現在,我知道這是MS SQL,這是短

SELECT CASE WHEN TRIM(ISNULL(purchaser,'')) = '' THEN '' ELSE orders END AS Orders 
FROM table 
0

如果'空白'表示NULL,則可以使用特定於DB的功能。

甲骨文:

SELECT NVL2(purchaser, orders, '') FROM MyTable; 

的MySQL:

SELECT IF(purchaser, orders, '') FROM MyTable; 
相關問題