我正在寻找一个SQL查询,它给我所有行,其中ColumnX包含任何小写字母(例如"1234aaaa5789").大写相同.
geo*_*eon 87
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
Run Code Online (Sandbox Code Playgroud)
这应该适用于像åäöøüæï这样有趣的角色.您可能需要为表使用特定于语言的utf-8排序规则.
Dev*_*avi 43
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)
这将使区分大小写的搜索.
编辑
正如指出kouton的在这里评论和tormuto的评论在这里凡面临着以下问题整理
COLLATE Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)
应首先检查其SQL服务器,其各自的数据库和相关列的默认排序规则 ; 并使用查询表达式传递默认排序规则.排序列表可以在这里找到.
小智 23
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
Run Code Online (Sandbox Code Playgroud)
小智 11
用于搜索小写的所有行
SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)
小智 8
在MS SQL服务器中使用COLLATE子句.
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
Run Code Online (Sandbox Code Playgroud)
添加COLLATE Latin1_General_CS_AS使搜索区分大小写.
SQL Server安装的默认排序规则SQL_Latin1_General_CP1_CI_AS不区分大小写.
要更改任何表的任何列的排序规则,请在查询后永久运行.
ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)
要知道在存储过程之后运行的任何表的列的排序规则.
EXEC sp_help DatabaseName
Run Code Online (Sandbox Code Playgroud)
来源:SQL SERVER - 整理 - 区分大小写的SQL查询
这是我对utf8编码的表和utf8_unicode_ci列执行的操作,这似乎并没有完全发布:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
Run Code Online (Sandbox Code Playgroud)
我做了类似的事情来找出小写字母。
SELECT *
FROM YourTable
where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95810 次 |
| 最近记录: |