我定义了一个名为 Inventory 的表,其中包含一个varchar(45)名为ItemNameCode. 这是表格,包含以下字母数字值。
我们要按字母数字排序为:
MES40
PT14
PT14-403
PT14-646-649
PT14-646-649
PT15-3-11
PT15-12-42
PT15-12-572-575
PT16-164
PT16-227
PT16-62-71
PT16-136
PT16-137
Run Code Online (Sandbox Code Playgroud)
我尝试了波纹管查询,但没有得到确切的顺序:
SELECT ItemNameCode
FROM Inventory
ORDER BY LEFT(ItemNameCode,PATINDEX('%[0-9]%',ItemNameCode)-1)
Run Code Online (Sandbox Code Playgroud) 我从我的product表中选择了一个额外的 Row_Number() 列 (Num) 的查询,我得到了如下的答案(我只限制了 20 行来检索)。
SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY ProductCode) AS Num,
ProductName
FROM BASE_Product
WHERE IsActive = 1) BASE_Product
WHERE Num > 0
AND Num < (21)
Run Code Online (Sandbox Code Playgroud)
我的要求是如何跳过每 3 行并仅检索 7 个限制行。
我需要如下结果:
有下图的表格。

我的问题是从每个客户那里检索并获取发票表中的发票总和,发票表中的发票总余额以及退货支票到期和退货支票总余额的总和......
我想要使用内部连接从上面的 3 个表中得到如下图所示的答案
请帮帮我谢谢。

如何将多条语句合并为一条选择语句。
我试过但得到错误:“当子查询没有通过 EXISTS 引入时,只能在选择列表中指定一个表达式。”
下面我已经提到了所有 4 个陈述。
声明 1
SELECT *
FROM (SELECT ROW_NUMBER() OVER(
ORDER BY
CASE WHEN ISNUMERIC(ProductCode) = 0
THEN CAST(LEFT(RIGHT(ProductCode,LEN(ProductCode)-CHARINDEX('-',ProductCode)), patindex('%[^0-9]%', RIGHT(ProductCode,LEN(ProductCode)-CHARINDEX('-',ProductCode))+'.') - 1) AS INT)
ELSE ProductCode END
, ProductCode
) AS Num1
, ProductCode + CHAR(13) + CHAR(10) + CHAR(13) + CHAR(10) + ProductName AS ProductCodeName1
FROM BASE_Product
WHERE IsActive = 1
) BASE_Product
WHERE Num1 > 0 AND Num1 < (95 + 1)
Run Code Online (Sandbox Code Playgroud)
声明 2
SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY CASE …Run Code Online (Sandbox Code Playgroud)