我正在寻找一个SQL查询,它给出了所有行,其中ColumnX包含任何小写字母(例如“1234aaaa5789”)。大写相同。
答案 0 :(得分:81)
SELECT * FROM my_table
WHERE UPPER(some_field) != some_field
这应该适用于像åäöøüæï这样有趣的角色。您可能需要为表使用特定于语言的utf-8排序规则。
答案 1 :(得分:39)
SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS
这会使区分大小写的搜索。
修改强>
如kouton comment here tormuto和comment here default collation所述,无论是否存在以下整理问题
COLLATE Latin1_General_CS_AS
应首先检查here的SQL服务器,它们各自的数据库和相关列;并使用查询表达式传递默认排序规则。可以找到归类列表{{3}}。
答案 2 :(得分:19)
SELECT * FROM Yourtable
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
答案 3 :(得分:9)
以小写
搜索所有行SELECT *
FROM Test
WHERE col1
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS
答案 4 :(得分:7)
在MS SQL服务器中使用COLLATE子句。
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
添加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
要知道在存储过程之后运行的任何表的列的排序规则。
EXEC sp_help DatabaseName
答案 5 :(得分:4)
这就是我为utf8编码的表和utf8_unicode_ci列所做的,它似乎没有完全发布:
SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)
答案 6 :(得分:2)
mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';
答案 7 :(得分:1)
我必须将BINARY添加到 ColumnX ,以获得 区分大小写
的结果SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';
答案 8 :(得分:0)
我不是MySQL的专家我建议你看看REGEXP
。
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';
答案 9 :(得分:0)
在Posgresql中,您可以使用~
例如,您可以搜索col_a
包含任何小写字母
select * from your_table where col_a '[a-z]';
您可以根据需要修改Regex表达式。
此致
答案 10 :(得分:0)
- 对于Sql
SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';
答案 11 :(得分:0)
我已经做了类似的事情来找出小写字母。
SELECT *
FROM YourTable
where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)
答案 12 :(得分:0)
从逻辑上讲,罗希特(Rohit)的解决方案应该有效,但事实并非如此。我认为SQL Management Studio在尝试优化时会搞砸。
但是通过在比较它们之前修改字符串,我可以得到正确的结果。这对我有用:
SELECT [ExternalId]
FROM [EquipmentSerialsMaster] where LOWER('0'+[ExternalId]) COLLATE Latin1_General_CS_AS != '0'+[ExternalId]