我在 SQL Server 数据库中有一个视图,我正在尝试在 C# 应用程序中使用,该模型需要一个 Key 字段,而该视图没有。 为了解决这个问题,我将在创建视图时创建一个 guid,但这会导致每一行都不同,从而否定创建视图中的 SELECT DISTINCT 子句。
我将如何在 SELECT 查询之后创建 GUID,以便只为结果提供 GUID?
谢谢
更新
感谢您到目前为止的所有帮助和评论,我已经管理了一个解决方法,但它并不漂亮,因为我正在努力改进 SQL,我确信有一个更好的解决方案 我有一个观点
CREATE VIEW [dbo].[vw_OpenTradesMarket]
AS
SELECT DISTINCT TOP (1000)
cast(C.[Link Ref#] AS varchar(max)) as [LinkRef]
,cast(C.[OpenMktBASE] AS varchar(max)) as [Value]
FROM Client AS C
inner JOIN stgMKTBOTH AS M ON C.[Link Ref#] = M.[Link Ref#]
然后我用 row_numberer() 创建此表的视图以创建编号表
CREATE VIEW vw_OpenTradesTest2
AS
SELECT
*
, Row_number() over ( Order by LinkRef) as [Id]
From dbo.vw_OpenTradesMarket
就像我说的,它有效但不漂亮,你们可以改进一下吗?
再次感谢!
这是您可以执行此操作的一种方法。不知道你的桌子是什么样的,所以我创建了假的。
create table Something
(
SomeVal varchar(10)
)
insert Something
select 'asdf' union all
select 'asdf' union all
select 'qwer' union all
select 'qwer'
go
create view MyView as
select SomeVal, ROW_NUMBER() over (order by SomeVal) as RowNum
from Something
group by SomeVal
go
select *
from MyView
go
drop view MyView
drop table Something