如何查找具有包含小写字母的值的行
我正在查找一个SQL查询,它给了我ColumnX包含任何小写字母(例如“1234aaaa5789”)的所有行。 相同的大写。
SELECT * FROM my_table WHERE UPPER(some_field) != some_field
这应该与有趣的人物,如åäöøüæï工作。 您可能需要为表格使用特定于语言的utf-8sorting规则。
SELECT * FROM my_table WHERE my_column = 'my string' COLLATE Latin1_General_CS_AS
这将做出区分大小写的search。
编辑
正如kouton 在这里的评论和tormuto 在这里的评论所说,无论谁在下面的整理中都面临着问题
COLLATE Latin1_General_CS_AS
应首先检查其SQL服务器,它们各自的数据库和有问题的列的默认sorting规则 ; 并使用查询expression式传递默认的sorting规则。 sorting列表可以在这里find。
SELECT * FROM Yourtable WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]
用于search小写的所有行
SELECT * FROM Test WHERE col1 LIKE '%[abcdefghijklmnopqrstuvwxyz]%' collate Latin1_General_CS_AS
谢谢Manesh Joseph
在MS SQL服务器中使用COLLATE子句。
SELECT Column1 FROM Table1 WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
添加COLLATE Latin1_General_CS_AS
使search区分大小写。
SQL Server安装的默认sorting规则SQL_Latin1_General_CP1_CI_AS
不区分大小写。
要更改任何表的任何列的sorting规则永久运行下面的查询。
ALTER TABLE Table1 ALTER COLUMN Column1 VARCHAR(20) COLLATE Latin1_General_CS_AS
要知道存储过程之后的任何表运行列的sorting规则。
EXEC sp_help DatabaseName
源代码: SQL SERVER – 整理 – 区分大小写的SQL查询search
mysql> SELECT '1234aaaa578' REGEXP '^[az]';
我不是MySQL的专家我build议你看一下REGEXP
。
SELECT * FROM MyTable WHERE ColumnX REGEXP '^[az]';
在Posgresql中,你可以使用~
例如,您可以search所有具有小写字母的col_a
行
select * from your_table where col_a '[az]';
你可以根据你的需要修改正则expression式。
问候,
– 对于Sql
SELECT * FROM tablename WHERE tablecolumnname LIKE '%[az]%';
我必须将BINARY添加到ColumnX ,以获得区分大小写的结果
SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[az]';