2017-10-06 63 views
-5

如何使字符串變爲大寫字母小寫字母和小寫字母變爲大寫字母的函數 「HelloW world」改爲「hELLOw WORLD」SQL:如何創建將字符串中的所有大寫字母都變爲小寫字母和小寫字母的函數

+3

看起來像我的功課。你試過什麼了?發佈您的代碼。 –

+0

我會實現'translate'函數,併爲此使用參數。 –

+0

我們怎麼總是問諺語和習慣「是否功課?」在網站上?只是好奇...我忘了。 –

回答

0

您可以創建一個函數,在該函數中光標將進行迭代並將拾取/獲取字符串值,如果其小寫字母可以使用SELECT UPPER('test string')將字符串更改爲大寫字母。字符串值將以大寫字母形式出現,您可以使用函數SELECT lOWER('test string')將其轉換爲小寫字母。

+1

這不是OP要求的。看他/她的例子 – FLICKER

1

您可以編寫一個函數來逐個循環字符串中的每個字符,如果它在一組小寫字符中,則應用UPPER函數,否則應用LOWER函數並構建函數的輸出串。

+0

使用ascii區分上限和下限? – xixixixi

+0

這是一種方法。另一個是PATINDEX,區分大小寫。 (請注意,範圍指定將不起作用,必須輸入模式中要匹配的所有字母):https://stackoverflow.com/questions/4212110/range-wildcard-pattern-matching-行爲與大小寫敏感整理 –

+1

範圍規範將與二進制排序規則一起使用。 –

0

您沒有聲明任何版本。對於SQL Server 2017,您可以使用Gordon建議的TRANSLATE

WITH T(S) AS 
(
SELECT 'HelloW world' 
) 
SELECT TRANSLATE(S COLLATE Latin1_General_CS_AS, 
       'ABCDEFGHIJLKMNOPQRSTUVWXYZabcdefghijlkmnopqrstuvwxyz', 
       'abcdefghijlkmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ') 
FROM T 
+0

對不起,我忘了它,它在2016服務器上工作嗎? – xixixixi

+0

不,這是2017年 –

相關問題