在PostgreSQL中,我們可以使用SELECT DISTINCT
和SUBSTRING
函式來實現對某個欄位進行去重查詢。本文將介紹如何使用這兩個函式來實現對resource_version
欄位的去重查詢。
1. SELECT DISTINCT
語句
SELECT DISTINCT
語句用於從表中選擇不重複的記錄。如果沒有指定列名,則會選擇所有列。在本例中,我們將使用SELECT DISTINCT
語句來選擇去重後的resource_version
欄位值。
SELECT DISTINCT resource_version
FROM tb_resource;
2. SUBSTRING
函式
SUBSTRING
函式用於從字串中提取子串。它有三個引數:原始字串、起始位置和子串長度。在本例中,我們將使用SUBSTRING
函式來擷取每個resource_version
欄位值的前N個字元,其中N為第4個.
之後的字元數。
SELECT DISTINCT substring(resource_version, 0, position(split_part(resource_version,'.',4) in resource_version)-1)
FROM tb_resource;
3. 結合使用SELECT DISTINCT
和SUBSTRING
函式
有時候我們需要同時使用SELECT DISTINCT
和SUBSTRING
函式來進行更復雜的文字操作。在本例中,我們將使用這兩個函式來實現對每個resource_version
欄位值的前3個字元進行去重查詢。
SELECT DISTINCT substring(resource_version, 0, position(split_part(resource_version,'.',4) in resource_version)-1)
FROM tb_resource;
以上程式碼中,我們首先使用position(split_part(resource_version,'.',4) in resource_version)-1
獲取第4個.
之前的字元數,然後使用該值作為子串長度來擷取每個resource_version
欄位值的前N個字元。最後,我們使用SELECT DISTINCT
語句來選擇去重後的字首字串。