我沒能找到像PostgreSQL中isupper
或islower
任何功能。 我實際需要的是從表中選擇所有記錄,其中一列包含capitized(但不是大寫)字。也就是說,每個單詞的第一個符號是大寫字母,第二個是小寫字母。單詞可以用任何語言書寫。如何確定postgresql中的特徵是大寫還是小寫?
7
A
回答
13
大約只選擇行,其中在列的第一個字母的大小寫不等於在列的第一個字母的小寫版本是什麼?
喜歡的東西:
SELECT * FROM table
WHERE SUBSTRING(col FROM 1 FOR 1) != LOWER(SUBSTRING(col FROM 1 FOR 1))
從理論上講,以上應採取數據庫字符集/語言環境考慮爲好。
0
由於postgresql
是區分大小寫字符串比較,BobG答案是更好
另一種解決方案是使用ascii與string functions
喜歡這個
SELECT *
FROM yourTable
WHERE (ascii(LEFT(yourColumn), 1) BETWEEN 65 AND 90)
AND (ascii(SUBSTRING(yourColumn from 2 for 1), 1) BETWEEN 97 AND 122)
時,它的65和90之間是一個大寫字母,你可以在ASCII表中看到我聯繫
如果「第97條和122之間是小寫
+0
這個解決方案是好的,BOT它並不適用於俄羅斯,中國和其他非ASCII語言的工作;) –
7
您可以使用Postgres regexp來測試您的具體情況:
select * from sample
where col ~ E'^[[:upper:]][^[:upper:]]'
你可以使用E'^[[:upper:]][[:lower:]]'
如果第二個字符必須是小寫字母,而不是任何非大寫。
0
如果你想知道一個字符串是否包含至少一個小寫字符,那麼你可以使用上層函數[上(myStr的)= myStr中]:
dbname=> select upper('AAbbCC')='AAbbCC';
?column?
----------
f
(1 row)
dbname=> select upper('AABBCC')='AABBCC';
?column?
----------
t
(1 row)
您可以使用相同的邏輯檢查一個字符串至少包含一個帶有lower()sql函數的大寫字符。
對於更復雜的模式,你將需要爲提議由早期的答案使用正則表達式或字符串。
相關問題
- 1. Xamarin.Forms:如何在ListView中搜索是小寫還是大寫?
- 2. 區分大小寫區分大小寫還是全大寫?
- 3. SharePoint GUID:大寫還是小寫?
- 4. 如何檢查文件擴展名是大寫還是小寫?
- 5. Python自動化:如果字符串是小寫還是大寫?
- 6. 在ruby中,如何判斷字符串輸入是大寫還是小寫?
- 7. SQL函數應該是大寫還是小寫?
- 8. MD5散列總是大寫還是小寫?
- 9. 如何測試一個字符是數字,大寫還是小寫?
- 10. 什麼是POPULAR今天編寫SQL查詢:大寫還是小寫?
- 11. 如何確定SQL Server實例是否區分大小寫
- 12. 如何確定MySQL整理是否區分大小寫?
- 13. Grails服務應該首字母大寫還是小寫?
- 14. SQL - 選擇名稱,不管大寫還是小寫字母
- 15. 硬盤分區的標籤是大寫還是小寫? (C:\或c:\)
- 16. 在Django中使用Postgresql 9.6如何對大小寫不區分大小寫?
- 17. tensorflow命名:大寫還是不是?
- 18. 用RxAndroidBle編寫多個特徵的正確方法是什麼?
- 19. 在HTML5中,class,id和xml:lang屬性值是不區分大小寫還是區分大小寫?
- 20. 是大小寫還是默認考慮語句?
- 21. 如何使用JavaScript測試字符串中的字母是大寫還是小寫?
- 22. Liquibase/PostgreSQL:如何正確保存表格大小寫?
- 23. PostgreSQL中的大小寫不敏感
- 24. 句柄大小寫或文本框中的正確大小寫
- 25. 如何在Python中編寫PostgreSQL查詢而不出現大寫/小寫問題?
- 26. 如何檢測大小寫鎖定是否在Swing中切換?
- 27. 如何確定SharePoint網站的正確(區分大小寫)URL
- 28. 特徵的決定如何是我們對象的特徵?
- 29. 確定緩存是回寫還是通過
- 30. 着寫特徵貝哈特
聰明!我沒有考慮過這個原因,我習慣於MySQL,這對字符串比較不區分大小寫 – Marc
這就是我的做法,它是解決特定問題的解決方案。 –
@Marc:也許我誤解你的評論,但是當我張貼的選擇,我測試在MySQL的,而不是Postgres的語法,因爲我沒有一個Postgres實例方便(我已經知道了側/上側/ SUBSTRING功能均在Postgres中有效)。它在MySQL(v 5.1.something)中工作得很好,成功返回一個包含'Abc'但不包含'xyz'的行。 – BobG