0
私はデータベースからURLを取得し、プロセスでわずかに再フォーマットする必要があります。 db内の一部のURLにはポート番号が指定されていますが、一部のポート番号は指定されていません。私は、Prestoの便利なURL extraction functions(url_extract_portなど)を使用しています。Presto URL関数
しかし、次のSQLでは、ポートが指定されていないURLに遭遇すると、実際にはnullでない行に対してもnullが返されます。 (私はurl_extract_port機能を削除した場合、私はポートなしでリンク値を取得しますが、。)
SELECT
concat(
url_extract_protocol(link)
,'://'
,url_extract_host(link)
,':'
,cast(url_extract_port(link) AS VARCHAR)
)
AS url
FROM db.schema.urltable
WHERE link is not null
私は唯一のポートが指定されている場合url_extract_portを使用するSQLで指定する方法はありますか?ポートは、nullを返すurl_extract_port存在しない場合に
,coalesce(cast(url_extract_port(link) AS VARCHAR),'')
:
ケース式は? 'case url_extract_port(link)> 0、次にx else y end' –
良いアイデア。しかし、ここでも合体(value1、value2)が良いかどうかは疑問です。 2番目の値は空白になります。多分それは大丈夫です。 –
具体的には、cast(coalesce(url_extract_port(link)、 ""))を試してみます。 –