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

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


6
SQL Server:列から行へ
列を行に変換するエレガントな(または任意の)ソリューションを探しています。 次に例を示します。次のスキーマを持つテーブルがあります。 [ID] [EntityID] [Indicator1] [Indicator2] [Indicator3] ... [Indicator150] これは私が結果として得たいものです: [ID] [EntityId] [IndicatorName] [IndicatorValue] そして結果の値は次のようになります: 1 1 'Indicator1' 'Value of Indicator 1 for entity 1' 2 1 'Indicator2' 'Value of Indicator 2 for entity 1' 3 1 'Indicator3' 'Value of Indicator 3 for entity 1' 4 2 'Indicator1' 'Value of …
128 sql  sql-server  tsql  unpivot 


4
列名を使用してアンピボット
StudentMarks列のあるテーブルがありますName, Maths, Science, English。データは Name, Maths, Science, English Tilak, 90, 40, 60 Raj, 30, 20, 10 次のように整理したい: Name, Subject, Marks Tilak, Maths, 90 Tilak, Science, 40 Tilak, English, 60 アンピボット私はきちんと名前、マークを取得することができていますが、これにソース表の列名を取得することができませんSubject目的の結果セット内の列。 どうすればこれを達成できますか? これまでに次のクエリに到達しました(名前、マークを取得するため) select Name, Marks from studentmarks Unpivot ( Marks for details in (Maths, Science, English) ) as UnPvt

10
INSERT INTO vs SELECT INTO
使用の違いは何ですか SELECT ... INTO MyTable FROM... そして INSERT INTO MyTable (...) SELECT ... FROM .... ? BOL [ INSERT、SELECT ... INTO ]から、SELECT ... INTOを使用すると、デフォルトのファイルグループに挿入テーブルがまだ存在しない場合は作成され、このステートメントのロギングはリカバリに依存することがわかりますデータベースのモデル。 どちらのステートメントが望ましいですか? 他のパフォーマンスへの影響はありますか? INSERT INTO ...よりもSELECT ... INTOの良いユースケースは何ですか? 編集:私はすでに、そのSELECT INTO ...が存在しないテーブルを作成することを知っていると述べました。私が知りたいのは、SQLに理由のためにこのステートメントが含まれているということです。それは何ですか?それは、行を挿入するために舞台裏で何か別のをやっている、またはそれはAの上だけ糖衣構文であるCREATE TABLEとINSERT INTO。

6
T-SQLのSQL Server正規表現
SPSQL Server用のT-SQL(CLRなし、拡張された、純粋なT-SQLなし)で記述された正規表現ライブラリはありますか?それは共有ホスティングで動作するはずですか? 編集: おかげで、私が知っているPATINDEX、LIKE、xp_ spsおよびCLRソリューション また、正規表現に最適な場所ではないことも知っています。問題は理論的なものです:) 機能制限も受け入れられます
127 sql-server  regex  tsql 

21
T-SQLを使用してサブ文字列が最後に出現するインデックスを検索する
SQLを使用して文字列が最後に出現するインデックスを見つける簡単な方法はありますか?現在SQL Server 2000を使用しています。基本的に、.NET System.String.LastIndexOfメソッドが提供する機能が必要です。少しグーグルでこれが明らかになりました- 「最後のインデックスを取得する関数」 -しかし、「テキスト」列式を渡した場合は機能しません。他の場所で見つかった他の解決策は、検索しているテキストが1文字である場合にのみ機能します。 たぶん関数を作り直さなければならないでしょう。私がそうするなら、皆さんがそれを見て多分利用できるように、私はここにそれを投稿します。

2
MS SQL Server Management Studioでトランザクションを操作する最良の方法
構文的にも意味的にも正しいSQLステートメントがあるとしましょう。 Management Studio(またはその他のクエリツール)でSQLステートメントをテストするにはどうすればよいですか。また、SQLステートメントが何かを壊したことに気付いた場合は、(別のクエリで)ロールバックします。
127 sql  tsql  transactions 

10
テーブルの列からIDを削除する
5 GBのテーブル(約5億行)があり、いずれかの列のIDプロパティを削除したいのですが、SSMSを使用してこれを実行しようとすると、タイムアウトします。 これはT-SQLを使用して実行できますか?
127 sql  sql-server  tsql 

15
SQLストアドプロシージャ内の動的な並べ替え
これは、過去に何時間も調査してきた問題です。現代のRDBMSソリューションで対処すべきだったように思えますが、データベースバックエンドを備えたWebまたはWindowsアプリケーションで信じられないほど一般的なニーズであると私が見ているものに実際に対処するものはまだ見つかりません。 動的ソートについてお話します。私のファンタジーの世界では、それは次のような単純なものでなければなりません: ORDER BY @sortCol1, @sortCol2 これは、初心者のSQLおよびストアドプロシージャの開発者がインターネット上のフォーラム全体で行った標準的な例です。「なぜこれが可能ではないのですか?」彼らが聞く。必ず、誰かが最終的にストアドプロシージャのコンパイルされた性質、一般的な実行計画、およびパラメーターを直接ORDER BY句に入れることができない他のあらゆる種類の理由について彼らに説明しに来ます。 「クライアントに並べ替えをしてもらいましょう」と既に思っている人もいます。当然、これはデータベースから作業をオフロードします。私たちの場合でも、データベースサーバーは99%の確率で汗をかいていませんし、マルチコアでも、6か月ごとに発生するシステムアーキテクチャの他の無数の改善でもありません。この理由だけで、データベースにソートを処理させることは問題になりません。さらに、データベースは非常に選別が得意です。それらはそれに最適化されており、正しく理解するために何年もかかっています。それを行うための言語は信じられないほど柔軟で直感的でシンプルであり、何よりも初心者のSQLライターはそれを行う方法を知っており、さらに重要なことに、編集方法を知っています。変更を加えたり、メンテナンスを行ったりします。データベースに負担がかけられず、開発時間を単純化(および短縮)したい場合、これは当然の選択のようです。 次に、ウェブの問題があります。私はクライアント側でHTMLテーブルの並べ替えを行うJavaScriptをいじってみましたが、それらは必然的に私のニーズに対して十分な柔軟性を備えていません。また、データベースに過度の負担がかからず、並べ替えを非常に簡単に実行できるため、私自身のJavaScriptソーターを書き換えたり、ロールバックしたりするのにかかる時間を正当化するのに苦労しています。同じことはサーバーサイドのソートにも当てはまりますが、おそらくJavaScriptよりもはるかに優先されています。私は特にDataSetsのオーバーヘッドが好きではないので、私を訴えます。 しかし、これはそれが不可能である、またはむしろ、容易ではないという点を取り戻します。以前のシステムでは、動的な並べ替えを行うための信じられないほどハックな方法を実行しました。それはきれいでもなく、直感的でも、単純でも、柔軟でもなかったため、初心者のSQLライターは数秒で失われてしまいます。すでに、これはそれほど「解決策」ではなく「複雑化」になりそうです。 次の例は、あらゆる種類のベストプラクティスや優れたコーディングスタイルなどを公開することを意図したものではなく、T-SQLプログラマとしての私の能力を示すものでもありません。彼らは彼らが何であるかであり、私は彼らが混乱し、悪い形で、そしてただのハックであることを完全に認めます。 整数値をパラメーターとしてストアード・プロシージャーに渡し(パラメーターを単に「ソート」と呼びましょう)、そこから他の変数の束を判別します。たとえば... sortが1(またはデフォルト)だとしましょう: DECLARE @sortCol1 AS varchar(20) DECLARE @sortCol2 AS varchar(20) DECLARE @dir1 AS varchar(20) DECLARE @dir2 AS varchar(20) DECLARE @col1 AS varchar(20) DECLARE @col2 AS varchar(20) SET @col1 = 'storagedatetime'; SET @col2 = 'vehicleid'; IF @sort = 1 …

12
NOLOCK(SQL Serverヒント)は悪い習慣ですか?
私はウェブサイトやアプリケーションではないビジネスをしているミッションクリティカル ->例。バンキングソフトウェア、宇宙飛行、集中治療モニタリングアプリケーションなど。 それで、その大きな免責事項で、いくつかのSqlステートメントでNOLOCKヒントを使用するのは悪いことですか?何年も前に、仲間のSQL管理者から、「ダーティリード」に満足している場合はNOLOCKを使用するように勧められました。テーブル/行/何でも。 また、デッドロックが発生している場合は、これが優れたソリューションであるとも言われました。したがって、SQLグルがいくつかのランダムコードを手伝ってくれて、SQLコードのすべてのNOLOCKSに気付くまで、私は数年にわたってその考えに従いました。私は丁寧に叱られました、そして彼はそれを私に説明しようとしました(なぜそれが良いことではないのですか)そして私はちょっと迷いました。彼の説明の本質は「それはより深刻な問題に対するバンドエイドの解決策だと感じました。特にデッドロックが発生している場合は。そのため、問題の根本を修正してください。 私はそれについて最近グーグルをして、この投稿に出くわしました。 それで、いくつかのSQL DBの達人先生が私を啓発してくれますか?


9
SQL Server 2005 T-SQLでのBase64エンコーディング
文字列をBase64文字列としてエンコードするT-SQLクエリを記述したいと思います。驚いたことに、Base64エンコーディングを実行するためのネイティブT-SQL関数が見つかりません。ネイティブ関数はありますか?そうでない場合、T-SQLでBase64エンコーディングを行うための最良の方法は何ですか?

7
SQL Server:PIVOTing文字列データの例
いくつかの簡単なSQL Server PIVOTの例を見つけようとしています。私が見つけたほとんどの例は、数を数えたり合計したりすることを含んでいます。文字列データをピボットしたいだけです。たとえば、次を返すクエリがあります。 Action1 VIEW Action1 EDIT Action2 VIEW Action3 VIEW Action3 EDIT (可能な場合でも)PIVOTを使用して結果を次のようにしたいと思います。 Action1 VIEW EDIT Action2 VIEW NULL Action3 VIEW EDIT これはPIVOT機能でも可能ですか?
124 sql-server  tsql  pivot 

11
SQLテーブルのレコードをどのようにコピーしますが、新しい行の一意のIDを交換しますか?
この質問は私が必要としているものに近くなりますが、私のシナリオは少し異なります。ソーステーブルと宛先テーブルは同じで、主キーは一意の識別子(GUID)です。私がこれを試すとき: insert into MyTable select * from MyTable where uniqueId = @Id; 主キーをコピーしようとしているため、明らかに主キー制約違反が発生します。実際には、主キーをまったくコピーしたくありません。むしろ新しいものを作りたい。さらに、特定のフィールドを選択的にコピーし、他のフィールドはnullのままにしておきます。さらに複雑なことに、元のレコードの主キーを取得して、コピーの別のフィールド(PreviousIdフィールド)に挿入する必要があります。 これには簡単な解決策があると確信していますが、それが何であるかを知るのに十分なTSQLを知りません。

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