0
SQL Server查詢。我記得我發現了一種生成序列號的方法,它在選擇數據時不使用ROW_NUMBER函數。但我不記得現在Sql server生成序列號
它是這樣的:
DECLARE @num int
SET @num = 0
SELECT ??? as [Index], Name FROM Product
The result will be:
Index | Name
1 | Rug
2 | Water
3 | Oil
我記得???就像@num = @num + 1一樣,在這裏它使用了一個函數CAST或ISNULL或CONVERT或另一個(我不記得,但我確定它不使用ROW_NUMBER()函數)
有辦法做到這一點?
我的問題,當我使用ROW_NUMBER():
select Id, Case when [type] = 'abc' then 1 else 0 end as Classification,
???? as DisplayOrder
from Product
order by Classification, ..., ..., ...
???如何在這裏使用Row_number()? 我嘗試Row_number(超過order by(select 1)),但它'按分類排序,...'語句在Row_number生成後運行。這意味着序號是在按語句操作排序之前生成的。
爲什麼你不希望使用'ROW_NUMBER()'。這將是自然而然的做法。 –
你記得不正確。 SQL Server「SELECT」可以爲變量賦值。或者,它可以返回列。但是,它並不是在同一時間。 MySQL確實允許你做你想做的事情。 –
是的,我在My SQL中看到它是@@ num:= @@ num + 1 –