簡體   English   中英

從字符串中刪除空值

[英]removing null value from string

我想用language_id'us'和'ru'顯示翻譯后的名稱和描述。 我的問題是如何刪除空值?

SELECT DISTINCT CASE WHEN LANGUAGE_ID = 'US' THEN COALESCE(TO_CHAR(TRANSLATED_NAME), ' ')
       END AS PRODUCT_NAME_US,
       CASE WHEN LANGUAGE_ID = 'US' THEN INITCAP(CONCAT(SUBSTR(TRANSLATED_DESCRIPTION, 1, 30), '...'))
       END AS PRODUCT_DESC_US,
       CASE WHEN LANGUAGE_ID = 'RU' THEN COALESCE(TO_CHAR(TRANSLATED_NAME), ' ')
       END AS PRODUCT_NAME_RU,
       CASE WHEN LANGUAGE_ID = 'RU' THEN INITCAP(CONCAT(SUBSTR(TRANSLATED_DESCRIPTION, 1, 30), '...'))
       END AS PRODUCT_DESC_RU
FROM PRODUCT_DESCRIPTIONS;

我懷疑您想要這樣的東西:

SELECT PRODUCT_ID,
       MAX(CASE WHEN LANGUAGE_ID = 'US' THEN COALESCE(TO_CHAR(TRANSLATED_NAME), ' ')
           END) AS PRODUCT_NAME_US,
       MAX(CASE WHEN LANGUAGE_ID = 'US' THEN INITCAP(CONCAT(SUBSTR(TRANSLATED_DESCRIPTION, 1, 30), '...'))
           END) AS PRODUCT_DESC_US,
       MAX(CASE WHEN LANGUAGE_ID = 'RU' THEN COALESCE(TO_CHAR(TRANSLATED_NAME), ' ')
           END) AS PRODUCT_NAME_RU,
       MAX(CASE WHEN LANGUAGE_ID = 'RU' THEN INITCAP(CONCAT(SUBSTR(TRANSLATED_DESCRIPTION, 1, 30), '...'))
           END) AS PRODUCT_DESC_RU
FROM PRODUCT_DESCRIPTIONS
GROUP BY PRODUCT_ID; -- whatever each row defines

這會對每種產品進行明確的匯總(當然使用適當的ID),並將英語和俄語翻譯放在適當的列中。

暫無
暫無

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

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