タグ付けされた質問 「tsql」

T-SQL(Transact Structured Query Language)は、Sybase ASEおよびMicrosoft SQL ServerでサポートされるSQL機能の拡張です。MySQL、PostgreSql、Oracle(Pl / SQL)関連のクエリには、このタグを使用しないでください。LINQを使用して記述されているSQLコードもこのタグの一部ではないことに注意してください。このタグは、Microsoft SQL Serverを使用した高度なSQLプログラミング用に特別に作成されました。

3
CASEステートメントを使用してSQL Server 2005の一部のレコードを更新したい
UPDATE dbo.TestStudents SET LASTNAME = ( CASE WHEN (LASTNAME = 'AAA') THEN 'BBB' WHEN (LASTNAME = 'CCC') THEN 'DDD' WHEN (LASTNAME = 'EEE') THEN 'FFF' ELSE (LASTNAME) END ) ステートメントは目的のために機能しますが、else条件はテーブル内のすべてのレコードをスキャンします。影響を受けていない行をそのままにしておく方法はありますか?



13
SQLステートメントを使用してパーセンテージを計算する方法
ユーザーとその成績を含むSQL Serverテーブルがあります。わかりやすくするために、2つの列があるとしましょう- name&grade。したがって、一般的な行は、名前: "John Doe"、グレード: "A"になります。 可能なすべての回答のパーセンテージを見つける1つのSQLステートメントを探しています。(A、B、Cなど...)また、可能なすべての回答を定義せずにこれを行う方法はあります(テキストフィールドを開く-ユーザーは「合格/不合格」、「なし」などを入力できます)。 私が探している最終的な出力は、A:5%、B:15%、C:40%などです。
177 sql  sql-server  tsql 

4
EXISTSでサブクエリが導入されていない場合、選択リストで指定できる式は1つだけです
私のクエリは次のとおりで、その中にサブクエリが含まれています。 select count(distinct dNum) from myDB.dbo.AQ where A_ID in (SELECT DISTINCT TOP (0.1) PERCENT A_ID, COUNT(DISTINCT dNum) AS ud FROM myDB.dbo.AQ WHERE M > 1 and B = 0 GROUP BY A_ID ORDER BY ud DESC) 私が受け取っているエラーは... Only one expression can be specified in the select list when the subquery …
176 sql  sql-server  tsql  exists 

10
SQLのテーブルのスキーマ名を変更する
Employeesデータベースのテーブルのスキーマ名を変更したい。現在のテーブルEmployeesデータベーススキーマ名はdboに変更しexeます。どうすればできますか? 例: から dbo.Employees に exe.Employees 私はこのクエリで試しました: ALTER SCHEMA exe TRANSFER dbo.Employees しかし、これは私にエラーを与えます: スキーマ 'exe'は存在しないか、権限がないため、変更できません。 私は何を取りこぼしたか?
175 sql  sql-server  tsql  schema 

8
整数のリストを保持するSQL変数
他の誰かのSQLレポートをデバッグしようとしていますが、基になるレポートクエリをSQL 2012のクエリウィンドウに配置しました。 レポートが要求するパラメータの1つは、整数のリストです。これは、レポートで複数選択ドロップダウンボックスを使用して実現されます。レポートの基になるクエリでは、この整数リストをwhere句で使用します。 select * from TabA where TabA.ID in (@listOfIDs) デバッグしているクエリを変更したくありませんが、SQL Serverでこのタイプのデータを保持してテストできる変数を作成する方法がわかりません。 例えば declare @listOfIDs int set listOfIDs = 1,2,3,4 整数のリストを保持できるデータ型はないので、SQL Serverでレポートと同じ値を使用してレポートクエリを実行するにはどうすればよいですか?

4
T-SQLのXML文字列の属性で二重引用符をエスケープするにはどうすればよいですか?
かなり単純な質問-二重引用符を使用したい属性があります。それらをエスケープするにはどうすればよいですか?私はもう試した 「」 「」 \\ " そして、@ xml変数をxmlタイプとそれらすべてのvarchar(max)の両方にしました。 declare @xml xml --(or varchar(max) tried both) set @xml = '<transaction><item value="hi "mom" lol" ItemId="106" ItemType="2" instanceId="215923801" dataSetId="1" /></transaction>' declare @xh int exec sp_xml_preparedocument @xh OUTPUT, @xml insert into @commits --I declare the table, just removed it for brevity select x.* from openxml(@xh,'/transaction/item') …
174 xml  tsql  escaping 

5
インデックスの列の順序はどのくらい重要ですか?
インデックス宣言の最初に、最も選択的な列を配置する必要があると聞きました。例: CREATE NONCLUSTERED INDEX MyINDX on Table1 ( MostSelective, SecondMost, Least ) まず、私が言っていることは正しいですか?その場合、インデックス内の列の順序を並べ替えることでパフォーマンスに大きな違いが見られる可能性がありますか、それとも「すてきな」練習のほうが多いですか? 私が尋ねる理由は、DTAを介してクエリを実行した後、ほとんどすべて同じ列が既存のインデックスと異なるインデックスを作成することをお勧めしたためです。不足している列を既存のインデックスに追加して、それを適切に呼び出すことを検討していました。考え?

6
SQLまたはTSQLチューリングは完全ですか?
これは今日オフィスで思いついた。私はそのようなことをする予定はありませんが、理論的にはSQLでコンパイラを書くことができますか?一見したところ、多くの種類の問題にとって非常に厄介ですが、完全に対処しているように見えます。 それが完全に実現しない場合、それがそうなるには何が必要ですか? 注:SQLでコンパイラーを作成するようなことはしたくありません。ばかげたことであることはわかっているので、その議論を回避できればありがたいです。

10
変数としてのテーブル名
私はこのクエリを実行しようとしています: declare @tablename varchar(50) set @tablename = 'test' select * from @tablename これにより、次のエラーが発生します。 メッセージ1087、レベル16、状態1、行5 テーブル変数「@tablename」を宣言する必要があります。 テーブル名を動的に入力する正しい方法は何ですか?

15
SQL Serverで実行中の合計を計算する
次の表(と呼ばれるTestTable)を想像してみてください。 id somedate somevalue -- -------- --------- 45 01/Jan/09 3 23 08/Jan/09 5 12 02/Feb/09 0 77 14/Feb/09 7 39 20/Feb/09 34 33 02/Mar/09 6 次のように、日付順に実行合計を返すクエリが必要です。 id somedate somevalue runningtotal -- -------- --------- ------------ 45 01/Jan/09 3 3 23 08/Jan/09 5 8 12 02/Feb/09 0 8 77 14/Feb/09 7 15 …

4
T-SQLのIndexOf関数
電子メールアドレス列を指定すると、部分文字列の@記号の位置を見つける必要があります。 indexofT-SQLの文字列の関数は何ですか? 文字列内の部分文字列の位置を返すものを探します。 C#で var s = "abcde"; s.IndexOf('c'); // yields 2
168 sql  sql-server  tsql  string 

13
時間を1時間または10分でグループ化する方法
私がするときのように SELECT [Date] FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY [Date] グループ期間を指定するにはどうすればよいですか? MS SQL 2008 2回目の編集 私はしようとしています SELECT MIN([Date]) AS RecT, AVG(Value) FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY (DATEPART(MINUTE, [Date]) / 10) ORDER BY RecT %10を/ 10に変更しました。ミリ秒なしで日付を出力することは可能ですか?

8
WHERE句での列エイリアスの参照
SELECT logcount, logUserID, maxlogtm , DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff FROM statslogsummary WHERE daysdiff > 120 私は得る 「無効な列名daysdiff」。 Maxlogtmは日時フィールドです。それは私を夢中にさせる小さなものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.