Sql 如何对‘;A’‘;B&x2019‘;AA’‘;AB&x2019;和‘;AAA’;?
关于这个问题: 我接受了使用MAX函数的答案,但Robert McKee指出,这将导致排序值,例如: ‘A’ ‘AA’ ‘AAA’ ‘AB’ ‘B’ 有谁愿意提供一个更好的答案,或者给我指出一个正确的方向来清理我的问题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个字符,等等。简单明了
提前感谢,不确定这是否符合您对“更好”或“清洁”的定义:
按左(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