Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何对‘;A’‘;B&x2019‘;AA’‘;AB&x2019;和‘;AAA’;?_Sql_Sorting_Sql Order By - Fatal编程技术网

Sql 如何对‘;A’‘;B&x2019‘;AA’‘;AB&x2019;和‘;AAA’;?

Sql 如何对‘;A’‘;B&x2019‘;AA’‘;AB&x2019;和‘;AAA’;?,sql,sorting,sql-order-by,Sql,Sorting,Sql Order By,关于这个问题: 我接受了使用MAX函数的答案,但Robert McKee指出,这将导致排序值,例如: ‘A’ ‘AA’ ‘AAA’ ‘AB’ ‘B’ 有谁愿意提供一个更好的答案,或者给我指出一个正确的方向来清理我的问题 提前感谢,不确定这是否符合您对“更好”或“清洁”的定义: 按左(MyString,1)、子字符串(MyString,2,1)、子字符串(MyString,3,1)排序 ORDER BY LEN(myValue),myValue 这将顺序是1个字符,然后是2个字符,等等。简单明了

关于这个问题:

我接受了使用MAX函数的答案,但Robert McKee指出,这将导致排序值,例如:

‘A’ ‘AA’ ‘AAA’ ‘AB’ ‘B’ 有谁愿意提供一个更好的答案,或者给我指出一个正确的方向来清理我的问题


提前感谢,

不确定这是否符合您对“更好”或“清洁”的定义:


按左(MyString,1)、子字符串(MyString,2,1)、子字符串(MyString,3,1)排序

ORDER BY LEN(myValue),myValue

这将顺序是1个字符,然后是2个字符,等等。

简单明了,谢谢。
DECLARE @TempTable TABLE (MyNumber int, MyString varchar(15));

INSERT @TempTable
VALUES (100, 'A'), (100, 'AAZ'), (100, 'B'), (100, 'AZ'), (100, 'C'), (100, 'Z'), (100, 'AA'), (100, 'AB');

SELECT TOP 1
RTRIM(CAST(MyNumber AS NVARCHAR(15)) + MyString) AS InvoiceNumber
FROM @TempTable
ORDER BY RIGHT(LEFT(MyString + SPACE(2), 3), 1) DESC, RIGHT(LEFT(MyString + SPACE(2), 2), 1) DESC, LEFT(MyString, 1) DESC;
ORDER BY LEN(myValue),myValue