2015-09-07 50 views
0

列中刪除字符需要刪除與這些字符結尾的列中的值:「* 8」的PostgreSQL從的endsWith

我發現他們:

SELECT 
     "PIPPO" 
    FROM 
     "PLUTO" 
    WHERE 
    "PIPPO" LIKE '%*8' 

有一個簡單的到的方法刪除那些用查詢結束字符?

+1

您可以使用replace(PIPPO, '* 8', '') –

+0

@MukeshKalgude什麼用列 '* 8' 在字符串的中間? – Patrick

回答

1
UPDATE "PLUTO" 
SET "PIPPO" = left("PIPPO", -2) 
WHERE right("PIPPO", 2) = '*8'; 

left() and right() functions從輸入字符串返回子字符串。使用負長度值會返回「除了所有內容」,因此對於'qwerty * 8'值爲'qwerty'且right("PIPPO", 2)產生'* 8'。請注意,除了表達式的索引之外,這將比使用LIKE運算符更快。

0

您可以使用正則表達式替換。它很強大。

update test 
set name = regexp_replace(name, '8$', ''); 

Click to View Test Script

+0

Regular Exp中的'$'表示一行的結尾。所以'8 $'匹配字符串和結尾'8'。 – Atvoid