我只是有這個問題,不知道是否可以通過SQL查詢來實現使用SQL查詢來利用領域
我有我的數據庫名稱字段 - SAM馬修斯M和我想將其轉換爲
Sam Mathews M
有沒有辦法通過SQL查詢來實現這一點。我知道寫一個PHP代碼來存檔它遍歷字符,但需要知道這是否是一種可能性...
謝謝, 塞繆爾馬修斯。
我只是有這個問題,不知道是否可以通過SQL查詢來實現使用SQL查詢來利用領域
我有我的數據庫名稱字段 - SAM馬修斯M和我想將其轉換爲
Sam Mathews M
有沒有辦法通過SQL查詢來實現這一點。我知道寫一個PHP代碼來存檔它遍歷字符,但需要知道這是否是一種可能性...
謝謝, 塞繆爾馬修斯。
您沒有告訴我們您使用的是哪個數據庫。
所以PostgreSQL的或甲骨文有折現法initcap
。
-- PostgreSQL
select initcap('SAM MATHEWS M')
-- Oracle
select initcap('SAM MATHEWS M') from dual
將打印出預期的結果
Sam Mathews M
對於SQLServer的不存在似乎是這樣一個簡單的解決方案,你必須去一個UDF:SQL: capitalize first letter only。
謝謝,我今晚會檢查這些信息,並保持更新。 再次感謝! –
我知道這是令人厭惡的,而不是genaric一個偉大的延伸,但我覺得心不是圍繞anothor工作,爲這個
declare @string as nvarchar(20) = 'SAM MATHEWS M'
declare @1 as nvarchar(20) = PARSENAME(REPLACE(@string, ' ', '.'), 1)
declare @2 as nvarchar(20) = PARSENAME(REPLACE(@string, ' ', '.'), 2)
declare @3 as nvarchar(20) = PARSENAME(REPLACE(@string, ' ', '.'), 3)
SELECT Upper(left(@3,1)) + LOWER(RIGHT(@3,LEN(@3)-1))
+ ' '
+ Upper(left(@2,1)) + LOWER(RIGHT(@2,LEN(@2)-1))
+' '
+Upper(left(@1,1)) + LOWER(RIGHT(@1,LEN(@1)-1))
這是MSSQL服務器
你會在PHP中使用同樣的方法可在SQL中使用 - 儘管效率並不高,因爲它不是SQL的優點。但是有一些函數可以識別模式,生成子字符串,並用小寫字母替換這些子字符串。然而,從數據庫引擎/系統到系統,確切的語法可能有所不同 - 那麼您運行哪一個? –
看看這裏http://stackoverflow.com/questions/19339538/sql-server-return-string-procedure-initcap –
我使用普通的web服務器 - phpmyadmin服務器。讓我知道你是否需要更多信息。 謝謝! –