เกี่ยวกับการ select db กรณี ที่มี ตัวอักษรปนอยู่กับตัวเลข แล้วเราจะเรียงลำดับเฉพาะตัวเลขยังไง
Code (SQL)
CREATE FUNCTION [dbo].[fnRemoveString] (
@sInput VARCHAR(500)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @str NVARCHAR(MAX);
DECLARE @lpcounter INT = 0;
WHILE @lpcounter <= 26
BEGIN
SET @sInput = REPLACE(@sInput, CHAR(65+@lpcounter), '');
SET @lpcounter = @lpcounter + 1;
END;
RETURN @sInput
END
Code (SQL)
SELECT * FROM ORDER BY dbo.fnRemoveString(Column) DESC
Date :
2019-09-06 17:17:30
By :
mr.win
LINQ มันเป็นเครื่องมือ อยู่ในส่วนของ main program พวก c#
ที่ให้เป็นตัวอย่างอยู่ในฝั่ง database server ครับ คุณต้องเขียน sql statement แล้วใช้ LINQ รันมันอีกที
ปล. ผมใช้ LINQ ไม่เป็น
Date :
2019-09-09 10:05:36
By :
Chaidhanan
คำสั่งเดิมมันเขียนไว้แบบนี้
Code (ASP)
List<LotStock> lotStocks = productLotStocks.Where(pls => pls.GetActualStock(currentPayoutList) > 0)
.GroupBy(p => new { p.LotId, p.ProductLot.LotCode })
.Select(s => new LotStock()
{
LotId = s.Key.LotId,
LotCode = s.Key.LotCode,
Amount = s.Select(p => p.GetActualStock(currentPayoutList)).Sum()
})
.OrderBy(p => p.LotCode)
.ToList();
Code (ASP)
.GroupBy(p => new { p.LotId, p.ProductLot.LotCode })
.OrderBy(p => p.LotCode)
ซึ่งแรกเริ่มเดิมที LotCode มีแค่ตัวเลข พอไปๆมาๆ ดันเพิ่มตัวอักษร หัวท้ายแบบไม่กำหนดจำนวน แต่ต้องการเรียงจาก ตัวเลขเท่านั้น
ประวัติการแก้ไข 2019-09-09 11:51:40
Date :
2019-09-09 11:49:13
By :
Pla2todkrob
ถ้าเป็นผมผมจะเอาตัวเลขตอนบันทึกไปใส่อีก column
เพราะการจัดการข้อมูลตอนบันทึกจัดการง่าย และเอาไปใช้งานง่าย
คำตอบอาจจะไม่ตรงคำถามครับ
Date :
2019-09-09 13:59:43
By :
birdbird27
select *, cast( REGEXP_REPLACE(FLD,'[^0-9]','') AS UNSIGNED) as srt_num from ....
.OrderBy(p => p.srt_num)
คือเดาเอาว่ามันต้องมีคำสั่ง select แบบ ธรรมดา โดยใช้ sql hard code
Date :
2019-09-10 16:14:33
By :
Chaidhanan
Load balance : Server 02