2015-11-11 74 views
0

我有一個查詢order by子句,如下所示。SQL Server 2008 R2:刪除字符串的一部分

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

我有一個變量,它包含帶有order by子句的查詢。

注意:我只是想刪除條款ORDER BY Cola DESC,Colb的順序。我可能在ORDER BY有多個列,所以基本上@SQLQuery將是動態

+1

的'爲了查找位置by'子用'CHARINDEX '然後用'left(@SQLquery,that_position)' –

+0

@AndyKorneyev,是的!得到它了。非常感謝。 – MAK

回答

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) 
+0

OnePlus。非常感謝。將在9分鐘內接受它。 – MAK

+1

@MAK很高興我能夠幫助。請檢查我所做的修改。 –

+0

哇!這是個好主意。再次,謝謝你。 – MAK

相關問題