sql查询中的变量存储数据字段值

时间:2013-10-03 11:01:30

标签: sql-server

Declare @string nvarchar(20)
set @string=(select [Bill Period] from [sqldata].[dbo].[jun1])
select substring (@string,1,3)

我从整个专栏[比尔期]得到了单一价值,我想要从[票据期间]到@string的所有记录,但它不起作用。

如何增加表INDEX并获取记录

declare @INDEX int
set @INDEX=1
while(@INDEX<3)
begin
Declare @string nvarchar(20)
set @string=(select [Bill Period] from [sqldata].[dbo].[jun1])
select substring (@string,1,3)
set @INDEX=@INDEX+1
end

5 个答案:

答案 0 :(得分:2)

如果[sqldata]是您的数据库名称,那么正确的顺序是:

select [Bill Period] from [sqldata].[dbo].[jun1]

答案 1 :(得分:2)

您不能在select语句中使用列:

服用:

[dbo].[sqldata].[jun1]
  • dbo是架构
  • sqldata就是表格 - 这是您应该从
  • 中选择的地方
  • jun1我不知道这是什么。

尝试:

Select Declare @string nvarchar(20)
set @string=(select [Bill Period] from [dbo].[sqldata])
select substring (@string,1,3)

或更好地解释您的问题/架构。

答案 2 :(得分:1)

它应该像

[sqldata].[dbo].[jun1]
^database ^Schema ^Tablename

写入查询:

Declare @string nvarchar(20)
set @string=(select [Bill Period] from [sqldata].[dbo].[jun1])
select substring (@string,1,3)

答案 3 :(得分:1)

请确保您使用的是正确的server_name.database_name.schema_name.object_name。您不需要使用所有这些多部分标识符,但一般的想法是您应该查看正确的位置。

此外,您应该在将其分配到变量之前选择TOP 1记录,否则一旦您在表格中获得多条记录就会中断

Declare @String nvarchar(20)

Select Top 1 @String = [Bill Period] 
From  jun1    -- on correct database 
Order by yourColumn

Select substring (@string,1,3)

答案 4 :(得分:0)

您的查询中存在错误。确保你以正确的方式调用它。

Luv回答 -

[sqldata].[dbo].[jun1]
^database ^Schema ^Tablename

这是SQL服务器支持的格式。