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

構造化照会言語(SQL)は、データベースを照会するための言語です。質問には、コード例、テーブル構造、サンプルデータ、使用するDBMS実装(MySQL、PostgreSQL、Oracle、MS SQL Server、IBM DB2など)のタグを含める必要があります。質問が特定のDBMSにのみ関連している場合(特定の拡張機能を使用)、代わりにそのDBMSのタグを使用してください。SQLでタグ付けされた質問への回答には、ISO / IEC標準SQLを使用する必要があります。



7
T-SQL:既知の値の配列をループする
これが私のシナリオです: 特定のIDのセットで別のストアドプロシージャを呼び出す必要があるストアドプロシージャがあるとします。これを行う方法はありますか? つまり、これを行う必要がある代わりに: exec p_MyInnerProcedure 4 exec p_MyInnerProcedure 7 exec p_MyInnerProcedure 12 exec p_MyInnerProcedure 22 exec p_MyInnerProcedure 19 このようなことをする: *magic where I specify my list contains 4,7,12,22,19* DECLARE my_cursor CURSOR FAST_FORWARD FOR *magic select* OPEN my_cursor FETCH NEXT FROM my_cursor INTO @MyId WHILE @@FETCH_STATUS = 0 BEGIN exec p_MyInnerProcedure @MyId …
89 sql  sql-server  tsql 

3
MySQL:フィールドサイズ/長さで並べ替え
これがテーブル構造(例:テスト)です: __________________________________________ | Field Name | Data Type | |________________|_________________________| | id | BIGINT (20) | |________________|_________________________| | title | varchar(25) | |________________|_________________________| | description | text | |________________|_________________________| 次のようなクエリ: SELECT * FROM TEST ORDER BY description DESC; ただし、フィールドのサイズ/フィールドの説明の長さで並べ替えたいと思います。フィールドタイプはTEXTまたはBLOBになります。

6
Exists 1またはExists *を使用したサブクエリ
以前は、次のようにEXISTSチェックを記述していました。 IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Where Columns=@Filters END 前世のDBAの1人が、EXISTS節を実行するときは、SELECT 1代わりにSELECT * IF EXISTS (SELECT 1 FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Columns=@Filters END これは本当に違いがありますか?
88 sql  sql-server  tsql 

15
EF 4.1例外「プロバイダーはProviderManifestToken文字列を返しませんでした」
MSDNにある例を再現しようとしています。ASP.NETとEF 4.1(CTP?)を使用しています。NuGetを使用してEntityFrameworkパッケージをインストールしました。 このエラーが発生します:The provider did not return a ProviderManifestToken string...そしてデータベースは作成されません。 これが私の接続文字列です: <add name="HospitalContext" connectionString= "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;" providerName="System.Data.SqlClient"/> これが私のコードです: var pat = new Patient { Name = "Shane123132524356436435234" }; db.Patients.Add(pat); var labResult = new LabResult { Result = "bad", Patient = pat }; int recordAffected = db.SaveChanges(); これが私のコンテキストです: public …
88 asp.net  sql  entity 

12
関数とストアドプロシージャ
結果としてテーブルを返す必要があるT-SQLコードを実装する必要があるとしましょう。テーブル値関数または行のセットを返すストアドプロシージャを実装できます。何を使うべきですか? 要するに、私が知りたいのは: 関数とストアドプロシージャの主な違いは何ですか?どちらか一方を使用する場合、どのような考慮事項を考慮する必要がありますか?

11
クエリの説明プランをどのように解釈しますか?
SQLステートメントがどのように実行されているかを理解しようとするときに、説明計画を確認することが推奨される場合があります。説明プランを解釈する(理解する)際に実行する必要があるプロセスは何ですか?「ああ、これは見事に機能していますか?」対「ああ、そうじゃない」

6
2点間の距離の計算(緯度、経度)
地図上の2つの位置間の距離を計算しようとしています。私はデータに保存しました:経度、緯度、X POS、Y POS。 以前は以下のスニペットを使用しています。 DECLARE @orig_lat DECIMAL DECLARE @orig_lng DECIMAL SET @orig_lat=53.381538 set @orig_lng=-1.463526 SELECT *, 3956 * 2 * ASIN( SQRT( POWER(SIN((@orig_lat - abs(dest.Latitude)) * pi()/180 / 2), 2) + COS(@orig_lng * pi()/180 ) * COS(abs(dest.Latitude) * pi()/180) * POWER(SIN((@orig_lng - dest.Longitude) * pi()/180 / 2), 2) )) AS …

5
数値をデータ型数値に変換する算術オーバーフローエラー
このクエリを実行するたびに、このエラーメッセージが表示され続けます。 Msg 8115, Level 16, State 8, Line 33 Arithmetic overflow error converting numeric to data type numeric. The statement has been terminated. しかし、作成テーブルを(7,0)に変更すると、エラーメッセージは表示されませんが、データを小数で表示する必要があります。私は8,3を試しましたが動作しません。 私がこれを行うのを手伝ってくれる人はいますか?どんな助けでも大歓迎です。 DECLARE @StartDate AS DATETIME DECLARE @StartDate_y AS DATETIME DECLARE @EndDate AS DATETIME DECLARE @temp_y AS DATETIME SET @temp_y = Dateadd(yy, Datediff(yy, 0, Getdate()), 0) SET …



7
SQL EXISTSステートメントはどのように機能しますか?
SQLを学習しようとしていますが、EXISTSステートメントを理解するのに苦労しています。私は「存在する」についてのこの引用に出くわしました、そして、何かを理解しません: 存在演算子を使用すると、サブクエリは0、1、または多数の行を返すことができ、条件はサブクエリが行を返したかどうかをチェックするだけです。サブクエリのselect句を見ると、単一のリテラル(1)で構成されていることがわかります。含まれているクエリの条件は、返された行数を知るだけでよいため、サブクエリが返した実際のデータは関係ありません。 私が理解していないのは、外部クエリがサブクエリがチェックしている行をどのように知るのかということです。例えば: SELECT * FROM suppliers WHERE EXISTS (select * from orders where suppliers.supplier_id = orders.supplier_id); サプライヤーと注文テーブルのIDが一致する場合、サブクエリはtrueを返し、サプライヤーのテーブルの一致する行のすべての列が出力されることを理解しています。私が得られないのは、trueまたはfalseのみが返される場合に、サブクエリがどの特定の行(たとえば、サプライヤID 25の行)を出力するかをどのように伝達するかです。 外部クエリとサブクエリの間に関係はないように見えます。
88 sql 

4
DISTINCTを使用して可能なパーティション関数COUNT()OVER
次のように、個別のNumUsersの現在の合計を取得するために、次のように記述しようとしています。 NumUsers = COUNT(DISTINCT [UserAccountKey]) OVER (PARTITION BY [Mth]) 管理スタジオはこれについてあまり満足していないようです。DISTINCTキーワードを削除するとエラーは消えますが、明確なカウントにはなりません。 DISTINCTパーティション関数内では不可能のようです。個別のカウントを見つけるにはどうすればよいですか?相関サブクエリなど、より従来の方法を使用しますか? これをもう少し詳しく見てみると、これらのOVER関数は、現在のSQL-Server合計を計算するために使用できないという点で、Oracleとは異なる動作をする可能性があります。 ここSQLfiddleにライブの例を追加しました。ここでは、パーティション関数を使用して現在の合計を計算しようとしています。

18
SQLは2つのテーブルのデータを比較します
私は2つのテーブルを持っているTableAと、TableB両方のテーブルを例えばカラムの同じフォーマットを有するTableAとTableB列を有しています A B C D E F ここで、AとBは主キーです。 SQLを記述して、TableAそれを確認する方法TableBして、同じ主キーを持つ、すべての列にまったく同じ値が含まれている。 これは、これら2つのテーブルのデータがまったく同じであることを意味します。
88 sql 

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