我正在通过在组合框中选择名称来检索数据,但是如果它有重复的行,它没有显示表的正确ID,所以任何人都可以帮我按id检索数据,
emp_id firstname middlename surname
88 sdf sdf sdf
89 durga dfg dfg
90 Durga Muthu
当我选择Durga
或durga
时,emp_id
仅显示为<{1}}
但如果我选择sdf
,则会显示正确的ID 88
请任何人帮我解决问题
答案 0 :(得分:1)
可能是这个人可以帮到你
SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'
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
在脚本上面设置的第二个结果将返回数据库DatabaseName的排序规则。
答案 1 :(得分:0)
在我看来,你正在尝试做一个“区分大小写”选择,是吗?
您应该使用区分大小写的分类。
在您的选择查询中尝试:
select emp_id from YOUR_TABLE where firstname = 'durga' COLLATE SQL_Latin1_General_CP1_CS_AS;
select emp_id from YOUR_TABLE where firstname = 'Durga' COLLATE SQL_Latin1_General_CP1_CS_AS;
如果您需要,可以在表格中进行更改:
alter table YOUR_TABLE alter column firstname varchar(20) COLLATE SQL_Latin1_General_CP1_CS_AS;
顺便说一下,你确定用'名字'查询是最好的方法吗?