sql-server - 将 SELECT 分配给 DBVisualizer 中 SQL-Commander 中的变量

标签 sql-server variable-assignment

我需要将选择分配给局部变量。我已经在谷歌上搜索了很多,并找到了以下解决方案(该解决方案不起作用,因此它不是真正的解决方案):

select @identId = (select ident_id FROM tablename WHERE number='0000001670');

我收到以下错误:

 [SELECT - 0 row(s), 0.000 secs]  [Error Code: 936, SQL State: 42000]  ORA-00936: missing expression.

一套也不能解决问题。我也尝试过 DEFINE,但也没有成功。我需要将此选择分配给一个变量,因为我要删除该表并且稍后需要该值。另一方面,它是否减少了我的代码重复。

它必须看起来像这样吗:

select ident_id as identId FROM zam_partnerdublette WHERE pa_nummer='0000001670';

但是之后我就无法使用该变量了。我尝试过:

delete from tablename where ident_id=@identId;
delete from tablename  where ident_id=&identId;
delete from tablename  where ident_id=identId;

但是所有这些都导致了不同的错误:

[DELETE - 0 row(s), 0.000 secs]  [Error Code: 936, SQL State: 42000]  ORA-00936: missing expression
[DELETE - 0 row(s), 0.000 secs]  [Error Code: 1008, SQL State: 72000]  ORA-01008: Not every variable has an assigned value
[DELETE - 0 row(s), 0.000 secs]  [Error Code: 904, SQL State: 42000]  ORA-00904: "IDENTID": unknown identifier

最佳答案

试试这个:

SELECT @identId = ident_id FROM tablename WHERE number='0000001670';

这是 SQL Server 方式,基于您在问题中包含的标签。如果您使用的是 Oracle,根据您帖子中的错误代码,您将执行以下操作:

DECLARE @identId NUMBER;
SELECT ident_id INTO @identId FROM tablename WHERE number='0000001670';

关于sql-server - 将 SELECT 分配给 DBVisualizer 中 SQL-Commander 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290667/

相关文章:

sql-server - 如何在 SQL Server 上使用 FOR XML 创建层次结构

sql - 在 SQL Server 中添加时间戳到日期

scala - 如何在Scala中模拟 “assign-once” var?

Java:条件初始化?

c - 在 C 中将 var 赋值给 var

c++ - 声明为条件 - 添加括号会导致错误

java - Java中 'pass by reference'/'pass by value'变量赋值的规则是什么?

sql - 在 In 子句中传递时获取不在表中的记录?

sql - 透视重复的列名称并获取列的所有值

sql - 如何在 SQL Server 中为字符串中的每个字符添加逗号和单引号?