目次
master..spt_values による列の分割
背景: ルックアップ テーブルとプロジェクション
Type = "P": Projection Table
列分割にタイプ "P" を使用する利点
コード例
ホームページ データベース mysql チュートリアル master..spt_values が SQL Server でカンマ区切り値を効率的に分割するにはどうすればよいですか?

master..spt_values が SQL Server でカンマ区切り値を効率的に分割するにはどうすればよいですか?

Dec 30, 2024 pm 02:20 PM

How Can master..spt_values Efficiently Split Comma-Separated Values in SQL Server?

master..spt_values による列の分割

背景: ルックアップ テーブルとプロジェクション

Master..spt_values は Microsoft SQL Server のシステム テーブルです。システム ストアド プロシージャで使用されるさまざまなルックアップ テーブルと射影テーブルが含まれています。数値、ビットマスク、およびその他の一般的に必要な値の事前定義されたシーケンスを提供することで、効率的なデータ操作が可能になります。

ルックアップ テーブルを使用すると、ロック タイプを数値から名前に変換するなど、数値を対応する文字列表現に拡張できます。 。一方、射影テーブルは、値の範囲を反復処理する方法を提供し、列を複数の行に分割する場合に便利です。

Type = "P": Projection Table

master に「P」と入力します。spt_values は射影テーブルを示します。 これには、0 から 2047 までの一連の連続した数字が含まれています。このテーブルにより、カウントや集計など、さまざまな操作を通じて一連の値を効率的に投影します。

列分割にタイプ "P" を使用する利点

master..spt_values を使用する の利点CSV 列を分割するための (タイプ "P") は、そのパフォーマンスと効率にあります。 SQL Server は、事前に計算された数値シーケンスを利用することで、シーケンスが動的に生成された場合に必要となる一時テーブルの作成と挿入を回避できます。これにより、列分割操作を実行するクエリの実行速度が大幅に向上します。

コード例

問題のコードは、master..spt_values:

SELECT
    T.col1, RIGHT(LEFT(T.col4,Number-1),
    CHARINDEX(',',REVERSE(LEFT(','+T.col4,Number-1))))
FROM
    master..spt_values,
    table1 T
WHERE
    Type = 'P' AND Number BETWEEN 1 AND LEN(T.col4)+1 AND
    (SUBSTRING(T.col4,Number,1) = ','
    -- OR SUBSTRING(T.col4,Number,1)  = '') --this does not work correctly anyway
ログイン後にコピー
このコードは、master..spt_values の Type "P" テーブルを利用して、次のような一連の数値を作成します。 CSV 列 (col4) の各文字を表示します。次に、これらの数値を使用して、カンマ区切り文字に基づいて列を行に分割します。

以上がmaster..spt_values が SQL Server でカンマ区切り値を効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DockerでのMySQLメモリの使用を減らします DockerでのMySQLメモリの使用を減らします Mar 04, 2025 pm 03:52 PM

DockerでのMySQLメモリの使用を減らします

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか? Mar 19, 2025 pm 03:51 PM

Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

mysqlの問題を解決する方法共有ライブラリを開くことができません mysqlの問題を解決する方法共有ライブラリを開くことができません Mar 04, 2025 pm 04:01 PM

mysqlの問題を解決する方法共有ライブラリを開くことができません

sqliteとは何ですか?包括的な概要 sqliteとは何ですか?包括的な概要 Mar 04, 2025 pm 03:55 PM

sqliteとは何ですか?包括的な概要

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし) Mar 04, 2025 pm 03:54 PM

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド Mar 04, 2025 pm 03:49 PM

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? 共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか? Mar 18, 2025 pm 12:00 PM

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか? 人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか? Mar 21, 2025 pm 06:28 PM

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

See all articles