我正在使用SQL服务器。我从数据库中获取学生信息。我按照姓氏排序,然后按名称ORDER BY lastname, firstname
命名,直到我有简单的数据。当名称中出现“〜”或任何其他字符时,会出现问题。它扰乱了秩序。
更新 这是我目前所得到的
在前端我有这个
期望是2和3应该在4和5之后,因为k是第一顺序然后ñ
答案 0 :(得分:1)
在查询中使用Collate
。希望能有所帮助!像:
SELECT FIRSTNAME, LASTNAME
FROM TABLE
ORDER BY FIRSTNAME Collate SQL_Latin1_General_CP1253_CI_AI
答案 1 :(得分:0)
在sql server -----
中创建此功能 CREATE FUNCTION dbo.RemoveSpecialChars (@s VARCHAR(256))
RETURNS VARCHAR(256)
WITH schemabinding
BEGIN
IF @s IS NULL
RETURN NULL
DECLARE @s2 VARCHAR(256)
SET @s2 = ''
DECLARE @l INT
SET @l = len(@s)
DECLARE @p INT
SET @p = 1
WHILE @p <= @l
BEGIN
DECLARE @c INT
SET @c = ascii(substring(@s, @p, 1))
IF @c BETWEEN 48
AND 57
OR @c BETWEEN 65
AND 90
OR @c BETWEEN 97
AND 122
SET @s2 = @s2 + CHAR(@c)
SET @p = @p + 1
END
IF len(@s2) = 0
RETURN NULL
RETURN @s2
END
现在您可以按照---
订购SELECT *
FROM yourtablename
ORDER BY dbo.RemoveSpecialChars(yourcolumnname)