■89895 / ) |
SQLでのデータ取得方法について |
□投稿者/ ルパン (12回)-(2019/01/15(Tue) 16:57:07)
|
分類:[.NET 全般]
以下のような感じでデータがある場合に
PNAME CNAME A B A A E ├B B E │└E C F │ ├G E G │ └H E H └E ├G └H
以下の方法でデータをとってきています。
DECLARE @PNAME VARCHAR(20) = 'A';
WITH CTE ( PNAME, CNAME ) AS ( SELECT PNAME, CNAME FROM M_TREE WHERE PNAME = @PNAME UNION ALL SELECT T2.PNAME, T2.CNAME FROM M_TREE AS T2 INNER JOIN CTE ON CTE.CNAME = T2.PNAME ) SELECT DISTINCT * FROM CTE
現在このデータが数万行あり DISTINCT が遅いのでEXISTS を使うなど 別の方法で高速にとってこれますか?
また、とってきたデータが以下の順番でとってこれますか? PNAME CNAME A A B ├B B E │└E E G │ ├G E H │ ├H A E └E E G ├G E H └H
|
|