2012-02-18 44 views
2

我在Sybase應用程序中運行下面的查詢,它的效果很好,但結果是當第一個名字寫成這樣,「ADNAN RAZA」使它成爲「Adnan raza」時。任何函數,我可以用這裏來檢測空間後的字母位置或 - 並更新。手動無法做到有超過10萬條記錄。名字或姓氏案例更改查詢而不會產生意外後果。

update master set firstname = 
upper(left(firstname,1))+lower(substr(firstname,2)); 
+0

這實際上更像是一個演示問題,應該在應用程序代碼中處理,而不是實際修改數據庫。 – 2012-02-18 22:05:58

+0

不幸的是,應用程序是預先編寫的,我不能修改它,否則它會太容易:) – MStp 2012-02-18 22:08:13

+0

這是一次性的事情,還是你會經常這樣做? – 2012-02-18 23:17:38

回答

0

目前在db級沒有解決方案。

1

在Oracle SQL中有一個名爲initcap(character-expression)的函數。
Initcap返回字符表達式,每個單詞的第一個字符大寫,其餘字母小寫。
我看到在Sybase的某個地方你有dbo.intcap(name)。

+0

dba.intcap是一個用戶定義的函數,它不是內置的函數,它使用與我已經在我的問題中發佈的邏輯相同的邏輯,所以問題保持不變。但感謝您的答案。 – MStp 2012-02-20 03:23:20

+1

hi
這裏有一個代碼示例,可能有助於[鏈接](http://www.novicksoftware.com/UDFofWeek/Vol1/T-SQL-UDF-Volume-1-Number-47-proper-case.htm) – 2012-02-20 15:03:19

相關問題