我有一個查詢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
將是動態。
我有一個查詢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
將是動態。
試試這個:
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)
的'爲了查找位置by'子用'CHARINDEX '然後用'left(@SQLquery,that_position)' –
@AndyKorneyev,是的!得到它了。非常感謝。 – MAK