SQL 服务器创建具有 GUID 的视图,然后选择非重复子句



我在 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

相关内容

  • 没有找到相关文章

最新更新