sql >> データベース >  >> RDS >> Sqlserver

文字列を解析し、そこからいくつかの列を作成するにはどうすればよいですか?

    SELECT substring(NameValue, 1, charindex('_', NameValue)-1) AS Names, 
      substring(NameValue, charindex('_', NameValue)+1, LEN(NameValue)) AS Values
    FROM Table
    

    編集 :このような関数またはストアドプロシージャを一時テーブルと組み合わせて配置すると、複数の行で機能するはずです。行の区切り文字によっては、CHAR(13)も削除する必要があります。 始める前に:

    DECLARE @helper varchar(512)
    DECLARE @current varchar(512)
    SET @helper = NAMEVALUE
    WHILE CHARINDEX(CHAR(10), @helper) > 0 BEGIN
        SET @current = SUBSTRING(@helper, 1, CHARINDEX(CHAR(10), NAMEVALUE)-1)
        SELECT SUBSTRING(@current, 1, CHARINDEX('_', @current)-1) AS Names, 
          SUBSTRING(@current, CHARINDEX('_', @current)+1, LEN(@current)) AS Names
        SET @helper = SUBSTRING(@helper, CHARINDEX(CHAR(10), @helper)+1, LEN(@helper))
    END
    SELECT SUBSTRING(@helper, 1, CHARINDEX('_', @helper)-1) AS Names, 
      SUBSTRING(@helper, CHARINDEX('_', @helper)+1, LEN(@helper)) AS Names
    


    1. django1.10でトリグラムとランク付けされた検索を組み合わせる

    2. Mac上のEmacsとMySQL

    3. HibernateOracleシーケンスは大きなギャップを生成します

    4. utf-8でエンコードされたテキストをMySQLテーブルにロードする