按id检索数据

时间:2012-09-05 13:18:07

标签: sql-server-2008

我正在通过在组合框中选择名称来检索数据,但是如果它有重复的行,它没有显示表的正确ID,所以任何人都可以帮我按id检索数据,

emp_id      firstname    middlename    surname

88          sdf             sdf        sdf 
89          durga           dfg        dfg 
90          Durga           Muthu   

当我选择Durgadurga时,emp_id仅显示为<{1}}

但如果我选择sdf,则会显示正确的ID 88

请任何人帮我解决问题

2 个答案:

答案 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的排序规则。

case-sensitive-sql-query-search

答案 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;

顺便说一下,你确定用'名字'查询是最好的方法吗?