Code: Select all
A1
A2
A3
A4
...
A20
B1
B2
...
B20Code: Select all
select * from table order by idCode: Select all
A1
A10
A11
A12
...
A19
A2
A20
B1
B10
B11
...
B19
B2
B20Code: Select all
A01
A02
etc
Code: Select all
A1
A2
A3
A4
...
A20
B1
B2
...
B20Code: Select all
select * from table order by idCode: Select all
A1
A10
A11
A12
...
A19
A2
A20
B1
B10
B11
...
B19
B2
B20Code: Select all
A01
A02
etcCode: Select all
UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(0, "Create Table TestTable (TestField)")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A2')")
DatabaseQuery(0, "Select * From TestTable Order By Substr(TestField, 1, 1), Cast(Substr(TestField, 2, 10) As Int)")
If DatabaseError()
Debug DatabaseError()
EndIf
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
Code: Select all
DatabaseQuery(0, "Select * From TestTable Order By Substr(TestField, 1, 1), Cast(Substr(TestField, 2, 10) As Int)")

Code: Select all
ABC2
ABC10
ABCD5
ABCD10
ABCDEF1
ABCDEF10
ETCCode: Select all
UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(0, "Create Table TestTable (TestField)")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('BC10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A20')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABC2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABC10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCD5')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCD10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCDEF1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCDEF10')")
;DatabaseQuery(0, "Select * From TestTable Order By Substr(TestField, 1, 1), Cast(Substr(TestField, 2, 10) As Int)")
DatabaseQuery(0, "Select * ,Rtrim(TestField, '1234567890') AS Part1,ltrim(TestField, 'ABCDEFGH') AS Part2 From TestTable Order By Part1 ASC,CAST(Part2 As Int) ASC")
If DatabaseError()
Debug DatabaseError()
EndIf
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
Code: Select all
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr FROM] str) 
Code: Select all
TEST.ACK.1
TEST.ACK.10
PROD.MX.2
PROD.MX.10
PROD.10
PROD.2
LOG.DAT.10
LOG.DAT.5Code: Select all
UseSQLiteDatabase()
OpenDatabase(0, ":memory:", "", "", #PB_Database_SQLite)
DatabaseUpdate(0, "Create Table TestTable (TestField)")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('BC10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('B2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A3')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A20')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('A2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABC2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABC10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCD5')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCD10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCDEF1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('ABCDEF10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('TEST.ACK.1')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('TEST.ACK.10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('PROD.MX.2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('PROD.MX.10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('PROD.10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('PROD.2')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('LOG.DAT.06')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('LOG.DAT.16')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('LOG.DAT.10')")
DatabaseUpdate(0, "Insert Into TestTable (TestField) Values ('LOG.DAT.5')")
;DatabaseQuery(0, "Select * From TestTable Order By Substr(TestField, 1, 1), Cast(Substr(TestField, 2, 10) As Int)")
DatabaseQuery(0, "Select * ,Rtrim(TestField, '1234567890') AS Part1,ltrim(TestField, 'ABCDEFGHHIJKLMNOPQRSTUVWXYZ.') AS Part2 From TestTable Order By Part1 ASC,CAST(Part2 As Int) ASC")
If DatabaseError()
Debug DatabaseError()
EndIf
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend