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

[請求期間] 列全体から 1 つの値だけを取得しました。[請求期間] から @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
4

5 に答える 5

2

[sqldata] がデータベース名の場合、正しい順序は次のようになります。

select [Bill Period] from [sqldata].[dbo].[jun1]
于 2013-10-03T11:05:54.527 に答える
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)

または、問題/スキーマをよりよく説明してください。

于 2013-10-03T11:05:54.790 に答える
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)
于 2013-10-03T11:06:03.060 に答える
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)
于 2013-10-03T11:08:32.167 に答える
0

クエリに何か問題があります。正しい方法で呼び出していることを確認してください。

マブラヴが答えたように-

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

これは、SQL サーバーでサポートされている形式です。

于 2013-10-03T11:16:43.920 に答える