テーブルのフィールドであるint(コンマ区切り)のリストを渡したい
すなわち。1234、2345、3456、4567
の私のIN
節にWHERE
。しかし、リストは文字列(VARCHAR
)であり、intフィールドと比較しています。リストをintのリストに変換する方法はありますか?
Enterprise_ID
されるINT
パスは、カンマ区切りの文字列で、テーブル内のフィールドです
すなわち。1234、2345、3456、4567
SELECT *
FROM tbl_Enterprise
WHERE Enterprise_ID IN ( Path )
私のデータベースはVerticaです。
verticaでSPLIT_PART関数を使用して、コンマ区切りのリストを行に分割し、それらを一時テーブルに挿入できます。次のようなクエリを使用して、目標を達成します。
SELECT * FROM tbl_Enterprice WHERE Enterprice_ID IN ( Select Enterprice_ID from temp_table )
パーツ分割関数:https://my.vertica.com/docs/7.1.x/HTML/Content/Authoring/SQLReferenceManual/Functions/String/SPLIT_PART.htm
split_partを使用して文字列を行に分割する例を次に示します。
dbadmin=> SELECT SPLIT_PART('JIM|TOM|PATRICK|PENG|MARK|BRIAN', '|', row_num) "User Names"
dbadmin-> FROM (SELECT ROW_NUMBER() OVER () AS row_num
dbadmin(> FROM tables) row_nums
dbadmin-> WHERE SPLIT_PART('JIM|TOM|PATRICK|PENG|MARK|BRIAN', '|', row_num) <> '';
User Names
------------
JIM
TOM
PATRICK
PENG
MARK
BRIAN
(6 rows)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加