SQL Server 2008 R2:删除字符串的某些部分

时间:2015-11-11 13:15:30

标签: sql-server sql-server-2008 sql-server-2008-r2

我有一个order by子句的查询,如下所示。

SET @SQLquery = 'SELECT Cola,Colb FROM Test
              ORDER BY Cola DESC,Colb'  

我有一个变量,其中包含带order by子句的查询。

注意:我只是想按条款ORDER BY Cola DESC,Colb删除订单。我可能在ORDER BY中有多列,因此基本上@SQLQuery动态

1 个答案:

答案 0 :(得分:1)

试试这个:

SET @SQLquery = LEFT(@SQLquery, PATINDEX('%ORDER BY%', @SQLquery) - 1)

如果您不确定ORDER BY是否包含@SQLquery,那么您可以使用:

SET @SQLquery = LEFT(@SQLquery, CASE WHEN PATINDEX('%ORDER BY%', @SQLquery) <> 0 
                                   THEN PATINDEX('%ORDER BY%', @SQLquery) -1
                                   ELSE LEN(@SQLquery)
                                 END)