Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL:huruf besar hanya huruf pertama

Apakah Anda meminta untuk mengganti nama kolom itu sendiri atau memanfaatkan data di dalam kolom? Jika datanya sudah Anda ubah, gunakan ini:

UPDATE [yourtable]
SET word=UPPER(LEFT(word,1))+LOWER(SUBSTRING(word,2,LEN(word)))

Jika Anda hanya ingin mengubahnya hanya untuk ditampilkan dan tidak memerlukan data aktual dalam tabel untuk diubah:

SELECT UPPER(LEFT(word,1))+LOWER(SUBSTRING(word,2,LEN(word))) FROM [yourtable]

Semoga membantu.

EDIT:Saya menyadari tentang '-' jadi inilah upaya saya untuk memecahkan masalah ini dalam suatu fungsi.

CREATE FUNCTION [dbo].[CapitalizeFirstLetter]
(
--string need to format
@string VARCHAR(200)--increase the variable size depending on your needs.
)
RETURNS VARCHAR(200)
AS

BEGIN
--Declare Variables
DECLARE @Index INT,
@ResultString VARCHAR(200)--result string size should equal to the @string variable size
--Initialize the variables
SET @Index = 1
SET @ResultString = ''
--Run the Loop until END of the string

WHILE (@Index <LEN(@string)+1)
BEGIN
IF (@Index = 1)--first letter of the string
BEGIN
--make the first letter capital
SET @ResultString =
@ResultString + UPPER(SUBSTRING(@string, @Index, 1))
SET @Index = @Index+ 1--increase the index
END

-- IF the previous character is space or '-' or next character is '-'

ELSE IF ((SUBSTRING(@string, @Index-1, 1) =' 'or SUBSTRING(@string, @Index-1, 1) ='-' or SUBSTRING(@string, @Index+1, 1) ='-') and @Index+1 <> LEN(@string))
BEGIN
--make the letter capital
SET
@ResultString = @ResultString + UPPER(SUBSTRING(@string,@Index, 1))
SET
@Index = @Index +1--increase the index
END
ELSE-- all others
BEGIN
-- make the letter simple
SET
@ResultString = @ResultString + LOWER(SUBSTRING(@string,@Index, 1))
SET
@Index = @Index +1--incerase the index
END
END--END of the loop

IF (@@ERROR
<> 0)-- any error occur return the sEND string
BEGIN
SET
@ResultString = @string
END
-- IF no error found return the new string
RETURN @ResultString
END

Jadi kodenya adalah:

UPDATE [yourtable]
SET word=dbo.CapitalizeFirstLetter([STRING TO GO HERE])


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menjelajahi SQL Server 2014 PILIH KE Paralelisme

  2. Tidak dapat terhubung ke localhost, tetapi dapat dengan nama komputer di SQL Server 2008

  3. Bisakah kunci asing menjadi NULL dan/atau duplikat?

  4. Di tsql, apakah Sisipkan dengan pernyataan Pilih aman dalam hal konkurensi?

  5. Dasar-dasar Otomatisasi Tugas SQL Server