SQL查询使列中的所有数据都是UPPER CASE?

Met*_*uru 64 sql uppercase

我需要一个SQL查询来使列UPPER CASE中的所有数据?

有任何想法吗?

Tom*_*lak 168

常驻:

UPDATE
  MyTable
SET
  MyColumn = UPPER(MyColumn)
Run Code Online (Sandbox Code Playgroud)

临时:

SELECT
  UPPER(MyColumn) AS MyColumn
FROM
  MyTable
Run Code Online (Sandbox Code Playgroud)


Kyl*_*Mit 13

如果您只想更新当前不是大写的行(而不是所有行),则需要使用以下方法识别差异COLLATE:

UPDATE MyTable
SET    MyColumn = UPPER(MyColumn)
WHERE  MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS 
Run Code Online (Sandbox Code Playgroud)

关于整理的一点点

案例敏感性基于您的校对设置,默认情况下通常不区分大小写.

可以在服务器,数据库,列或查询级别设置排序规则:

-- 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
Run Code Online (Sandbox Code Playgroud)

排序规则名称指定应如何编码和读取字符串,例如:

  • Latin1_General_CI_AS →案例不敏感
  • Latin1_General_CS_AS →区分大小写