Sql server 2008 谁能给我解释一下下面的代码吗。

Sql server 2008 谁能给我解释一下下面的代码吗。,sql-server-2008,Sql Server 2008,谁能帮我理解下面的代码。请帮助我如何工作,因为我是新的勒宁sql server WITH SearchTerms(Term) AS (SELECT ' I ' UNION ALL SELECT ' II ' UNION ALL SELECT ' III ' UNION All SELECT ' MD ' UNION All SELECT '

谁能帮我理解下面的代码。请帮助我如何工作,因为我是新的勒宁sql server

WITH SearchTerms(Term)
     AS (SELECT ' I '
         UNION ALL
         SELECT ' II '
         UNION ALL
         SELECT ' III '
         UNION All
         SELECT ' MD '
          UNION All
         SELECT ' M.D '
          UNION All
         SELECT ' M.D. '
          UNION All
         SELECT ' D.O '
           UNION All
         SELECT ' D.O. '
           UNION All
         SELECT ' DO '
         ),
     ToBeSearched(string)
     AS (SELECT 'sjfhasjdg III do ')
SELECT string,
       Term,
       Charindex(Term, string) AS Location
FROM   ToBeSearched
       JOIN SearchTerms
         ON Charindex(Term, string) > 0  

此查询使用两个
公共表表达式
,然后使用
内部联接
形成一个
SELECT
语句

第一个公共表表达式(CTE)使用
联合
为表创建一组结果

第二个CTE只包含一条记录和一列,其值为
'sjfhasjdg III do'

查询末尾的
SELECT
语句根据第二个CTE中的记录过滤出第一个CTE的结果

结果集将是:

string               Term   Location
sjfhasjdg III do     III    10
sjfhasjdg III do     DO     14
有关CTE的更多信息,请参见:


Tanq:-)我理解CTE。结果集依赖于排序规则。排序规则依赖意味着什么?