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

SQL Server 2008 の分割、並べ替え、およびマージの値

    ;WITH cte(car_Id, traceXML) AS
     (
      SELECT car_Id, CAST('<A>' + REPLACE(trace, ';', '</A><A>') + '</A>' AS XML)
      FROM dbo.cars
      ), cte2 AS
     (
      SELECT car_Id, trace, NTILE(4) OVER(ORDER BY (SELECT 1)) AS grId  
      FROM cte
      CROSS APPLY (SELECT Tbl.Col.value('.', 'nvarchar(250)') AS trace 
                   FROM traceXML.nodes('/A') Tbl(Col)) AS List
      ), cte3 AS
     (
      SELECT DISTINCT a.car_Id,(
      SELECT ISNULL(b.trace, '') + ';' 
      FROM cte2 b 
      WHERE b.grId = a.grId
      FOR XML PATH('')) AS trace
      FROM cte2 a
      )
      SELECT DISTINCT a.car_Id,(
      SELECT ISNULL(b.trace, '')
      FROM cte3 b
      WHERE b.car_Id = a.car_Id
      FOR XML PATH('')) AS trace
      FROM cte3 a
      

    SQLFiddle のデモ



    1. uWSGI、Flask、sqlalchemy、およびpostgres:SSLエラー:復号化に失敗したか、レコードマックが不良

    2. OracleIdentifyデータ型

    3. 2つの異なるテーブルを結合し、重複したエントリを削除します

    4. WHERE句のフィールドの順序はMySQLのパフォーマンスに影響しますか?