问题标签 [newid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
282 浏览

sql-server - 在函数内使用 NEWID() - 作为变量 - 但每次都获得相同的值

我在函数中使用 NEWID() 。这是我的功能:

我有 #temp 的值:'1','2','3' 我想使用这个函数从这个表中随机抽取。我这样称呼这个函数:

但我每次都得到相同的值('1')

我的错误在哪里?

0 投票
1 回答
40 浏览

sql-server - 从函数内的表中获取一个随机行 - sql server

我在sql中有这个过程。要求是:如果条件(例如我放 1=1 ..)然后 [运行另一个过程或函数,该过程或函数将从表中随机取一个值并返回它。] else 1 例如:

这是 myTable: '1','2','3' 我希望这个函数从中随机一个值

问题是在函数中我不能运行 newID(),如果我想使用过程而不是函数,我不能从 case 语句中运行它。

你有什么建议。?多谢。

0 投票
1 回答
61 浏览

sql-server - 从 CTE 输出中随机化部分选择

这个问题中,@GordonLinoff 为我最初的问题提供了一个解决方案(递归公用表表达式)。这是一个后续问题。

最初的问题

我如何循环注册直到达到一定数量(总和)的 AmountPersons 并且如果下一个 AmountPersons 太高而无法被邀请检查下一行的 AmountPersons 是否合适?

请通过上面的链接检查最初的问题以获取完整的图片。

新情况

首先,我们有 20 个可用席位,我们遍历数据行来填补这些席位(初始问题)。

然后我对Count_Invitedorder by进行排序并从row_number()函数中更新。因此,被邀请最少的人应该获得优先权。

然后我还添加了Count_Registered列,因为注册最多但被邀请最少的人也应该获得优先权。

新问题

如果第三个、第四个、第五个 .. 用户也具有相同的值(Count_Invited 和 Count_Registered 和 AmountPersons 为 1),我如何从下面的结果中打乱被邀请的最后两个人?

顶部数据的排序正确,但只有最后几行需要随机化被邀请者。

我知道这种ORDER BY NEWID()随机化行的功能,但在我的情况下它不能应用于所有行。我不知道如何处理这个...更多信息如下。

新的 T-SQL 代码:

这是我每次执行上述代码时得到的结果: sql结果

我希望这对某人有意义。谢谢你。


@George Menoutis 建议答案的输出: ![输出newid NOK


编辑:额外的澄清步骤。这是应该发生的:

-- 声明 amountSeats = 25

-- 选择 Count_Invited 的第一个值

-- 如果该值为 0

-- 对 Count_Invited 为 0 的 AmountPersons(多行)求和

-- 如果该总和低于 amountSeats,假设现在是 10

-- 在临时表中插入所有值为 0 的行(不确定这是否是要走的路……)

-- 选择 Count_Invited 的第二个值(不是第二行) --> 所以 Count_Invited 不是 0

-- 如果该值为 1

-- 对 Count_Invited 为 1 的 AmountPersons(多行)求和

-- Count_Invited 的总计数 = 0 + Count_Invited = 1

-- 如果这个总和仍然低于 amountSeats,假设现在是 15

-- 在临时表中插入(添加)Count_Invited 1 的所有行

-- 选择 Count_Invited 的第 3 个值(不是第 3 行) --> 所以 Count_Invited NOT IN (0, 1)

-- 如果该值为 5

-- 计数 AmountPersons(多行),其中 Count_Invited 为 5

-- Count_Invited 的总计数 = 0 + Count_Invited = 1 + Count_Invited = 5

-- 现在假设 AmountPersons 的计数现在是 40

-- 这意味着不是每个 Count_Invited = 5 的人都可以被邀请,因为只有 10 个空位

-- 需要对这些行进行随机选择

-- 选择 Count_Invited 为 5 的随机行,直到这些行的总和为 10

-- 如果 10 不能匹配,则通过遍历剩余的行尽可能接近,但不要超过 10

0 投票
2 回答
470 浏览

sql - 在 INSERT INTO SELECT FROM 语句中使用 NEWID() 填充 GUID 列会引发错误 (NULL) 值

如果 Table1 中尚不存在 Table1 中的值,我将尝试使用 Table2 中的值填充它们。

Table1 有一个 UNIQUEIDENTIFIER 约束,并指定了默认值 NEWID()。

我正在使用 SELECT DISTINCT 语句从 Table2 中获取结果,最终只是创建了一个视图来为我执行此操作。我会预先声明 Table2View中没有重复的值

我还尝试将 SELECT 语句的结果放到临时表中,并使用NEWID()从那里提取值在临时表上填充 GUID。到目前为止,无论我尝试过什么都会产生相同的错误。

违反 UNIQUE KEY 约束“constraintname”。无法在对象“dbo.table1”中插入重复键。重复键值为 NULL。

这是 Table1 上的 CREATE TO:

这是我正在运行以填充表的查询:

我已经单独运行了SELECT语句,INSERT没有NULL值也没有重复值。查询运行良好并NEWID()填充 GUID。

但是,将SELECT语句添加到INSERT INTO会产生错误。

任何帮助都将不胜感激。我已经用谷歌搜索了这个问题到精神错乱的地步。

0 投票
1 回答
86 浏览

sql-server - sql server 中的 RAND() 函数

谁能帮我理解如何在 SQL Server 中使用 RAND() 函数?

我有一个场景,我想根据评级以随机顺序从产品表中获取随机产品。

另外,在这方面,我想优先考虑评级较高的产品,而不是评级较低的产品,以排在首位。

但并不是每次只有评分较高的产品才会排在首位;有时评级较低的产品应该放在首位。

截至目前,我是通过 完成的NEWID(),它每次都给我随机排序,但它不考虑产品的排名。

表列:ProductID, ProductName, Rating

此查询每次都会给我随机产品,但不能满足我的标准,即在大多数情况下获得较高评级产品而不是较低评级产品。

0 投票
1 回答
108 浏览

sql-server - 是否可以用 NewId() 重复 NEWSEQUENTIALID()?

我以前有一张表,大约有1000W条数据,主键列的数据类型是uniqueidentifier,默认值是Newid()。现在出现性能问题,我想将默认值更改为NEWSEQUENTIALID().

生成的 GUID 是否可以NEWSEQUENTIALID()复制之前保存的数据(之前生成的NewId())?

0 投票
2 回答
417 浏览

integer - 在 Odoo 13 中整数字段的计算字段中出现问题

在 odoo 13 的整数字段(天)中应用计算方法(_compute_days)时,我遇到了问题。

错误是:-

Lead.age.audit(,).days

我的代码如下:-

提前致谢。

0 投票
1 回答
605 浏览

python - psycopg2.ProgrammingError:无法在 odoo 14 中调整类型“NewId”

在 one2many 字段中创建新记录时遇到上述错误。

代码如下:

0 投票
1 回答
142 浏览

sql - 试图弄清楚为什么 NewID 函数停止在 Oracle 上工作

我过去常常SELECT NEWID() FROM DUAL生成新的(随机)guid。
但是,今天尝试时出现以下错误:

ORA-00904: "NEWID": 无效标识符

我无法通过谷歌搜索找到此特定错误。所以我猜这个案子一定是这两种情况中的任何一种:

  1. 我的系统管理员以某种方式阻止了此操作,或者由于某些安装/版本更新问题,Oracle 实例无法找到该功能。
    -或者-
  2. Oracle 已停止支持NEWID()并希望我们仅SYS_GUID()用于 Guid 生成。
    (如果是,那么我将不得不实现 REGEXP_REPLACE,因为我的系统中的 GUID 是“-”分隔的。
    另外 - 我必须更新所有使用 NEWID() 的现有代码)。

任何建议都会有所帮助。谢谢。