SQL query to make all data in a column UPPER CASE?

后端 未结 2 740
無奈伤痛
無奈伤痛 2021-02-01 11:42

I need a SQL query to make all data in a column UPPER CASE?

Any ideas?

相关标签:
2条回答
  • 2021-02-01 12:07

    Permanent:

    UPDATE
      MyTable
    SET
      MyColumn = UPPER(MyColumn)
    

    Temporary:

    SELECT
      UPPER(MyColumn) AS MyColumn
    FROM
      MyTable
    
    0 讨论(0)
  • 2021-02-01 12:32

    If you want to only update on rows that are not currently uppercase (instead of all rows), you'd need to identify the difference using COLLATE like this:

    UPDATE MyTable
    SET    MyColumn = UPPER(MyColumn)
    WHERE  MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS 
    

    A Bit About Collation

    Cases sensitivity is based on your collation settings, and is typically case insensitive by default.

    Collation can be set at the Server, Database, Column, or Query Level:

    -- Server
    SELECT SERVERPROPERTY('COLLATION')
    -- Database
    SELECT name, collation_name FROM sys.databases
    -- Column 
    SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
    

    Collation Names specify how a string should be encoded and read, for example:

    • Latin1_General_CI_AS → Case Insensitive
    • Latin1_General_CS_AS → Case Sensitive
    0 讨论(0)
提交回复
热议问题