Select SQL集合语句

Select SQL集合语句,select,set,sql,Select,Set,Sql,我目前正在提高我的SQL知识。目前,我正试图通过从select语句中获取一个值来声明一个变量。第一个问题:这可能吗 第二个问题:我有一个SQL试图执行上述操作。我的意图是将@version\u group设置为version\u replace所包含的任何内容,这始终是一个单行、单列的结果 DECLARE @version_group int SET @version_group = SELECT version_replace FROM users WHERE id=@sid

我目前正在提高我的SQL知识。目前,我正试图通过从select语句中获取一个值来声明一个变量。第一个问题:这可能吗

第二个问题:我有一个SQL试图执行上述操作。我的意图是将
@version\u group
设置为
version\u replace
所包含的任何内容,这始终是一个单行、单列的结果

    DECLARE @version_group int
    SET @version_group = SELECT version_replace FROM users WHERE id=@sid
如何将其更正为有效语法?(假设有可能)

如何将其更正为有效 syntex?(假设有可能)

您需要的语法如下所示,它需要一条您在最初的工作中没有的信息(FROM子句):

不要忘记包含您的数据源(即表、视图、替换上面的MyVersionTable)。

这是可能的。就这么做(SQL 2008):

  • 当然
  • 从id=@sid的表中选择@version\u group=version\u replace

  • -1由于在已发布的查询中缺少from语句,请发送给self!可以自由编辑您的问题您对SQL的了解应该包括它是一种基于集合的语言(双关语)并且打算与优化器一起工作。您似乎正在使用SQL编写过程代码。一旦您拥有了
    @version\u group
    值,您将如何处理它?如果答案是“将它用作另一SQL语句中的参数”,那么考虑将两者结合起来,并给予优化器一个适当的外观。+ 1,但值得注意的是,它仅在SQL 2K8中有效(并且AS是可选的)。我猜您是对的:(我用SQL 2K8工作,这是我使用的语法。TIK是第一个!(我需要多个蜱)
    DECLARE @version_group int
    
    select @version_group = version_replace from (you're missing this from your query) where id=@sid
    
    DECLARE @version_group int
    
    SELECT @version_group = version_replace
    FROM   MyVersionTable
    WHERE  id=@sid
    
    declare @version_group as int=
    (SELECT version_replace 
    FROM users
    WHERE id=@sid);
    
    DECLARE @version_group int
    
    -- THEN
    
    SET @version_group = 1
    
    -- OR!
    
    SELECT @version_group FROM version_replace WHERE id=@sid