我在T-SQL中有一個用戶定義的函數,它在內部使用CHARINDEX()。我將@caseSensitivity(bit)參數作爲輸入,它應該決定CHARINDEX()函數的大小寫(整理)。有沒有辦法做到這一點,而不是每次發生CHARINDEX()兩個if-構造?用戶定義函數中的CaseSensitivity T-SQL
0
A
回答
1
不幸的是,有isn't a way to set a connection-level collation override,如果這就是你在想什麼(我是)。但是,如果您只是想方便地控制這一點,那麼您可以評估所有CHARINDEX查找區分大小寫,然後使用UPPER使其在@時不區分大小寫, caseSensitive爲零:
DECLARE @caseSensitivity BIT = 1
DECLARE @input VARCHAR(3) = 'Abc'
DECLARE @inputCheck VARCHAR(3) = 'B'
IF @caseSensitivity = 0
BEGIN
SET @input = UPPER(@input)
SET @inputCheck = UPPER(@input)
END
SELECT CHARINDEX(@inputCheck COLLATE SQL_Latin1_General_CP1_CS_AS, @input COLLATE SQL_Latin1_General_CP1_CS_AS, 0)
+0
這實際上是一個很好的解決方案。我正在尋找那樣的東西。謝謝! – zhulien 2014-09-09 08:21:35
+0
非常歡迎! – 2014-09-09 09:00:37
相關問題
- 1. tsql用戶定義的函數
- 2. TSQL如何在用戶定義函數中輸出PRINT?
- 3. 如何使用Fluent NHibernate映射Tsql用戶定義的函數?
- 4. SQL調用自定義函數 - TSQL
- 5. 函數中的函數TSQL
- 6. zend中的用戶定義函數
- 7. Vim中的用戶定義函數
- 8. C++中的MySQL用戶定義函數
- 9. Lisp中的SQLITE用戶定義函數
- 10. 從用戶定義函數
- 11. 用戶定義函數
- 12. KeyError:在用戶自定義函數中
- 13. 調用用戶定義的C函數
- 14. 使用用戶定義的函數
- 15. 用戶自定義函數的用法
- 16. 如何在Leksah中定義用戶定義的函數?
- 17. 用戶定義的函數numpy的外
- 18. 在另一個用戶定義的函數中調用用戶定義的函數時發生名稱錯誤
- 19. 如何在用戶定義函數中使用AQL函數?
- 20. SQL用戶定義的函數
- 21. 實現用戶定義的malloc()函數?
- 22. 調試PostgreSQL用戶定義的函數
- 23. 找不到用戶定義的函數
- 24. 用戶定義函數的問題
- 25. OpenCL用戶定義的內聯函數
- 26. Streaminsight用戶定義的函數限制
- 27. PHP用戶定義的函數問題
- 28. 應用以函數爲參數的用戶自定義函數
- 29. 是否可以在TSQL查詢中定義本地函數?
- 30. SQL用戶定義的函數:獲取用戶定義函數中的TOP n記錄
你可以發佈代碼示例嗎? – Jace 2014-09-05 16:58:02
你考慮過'CASE'而不是'IF'嗎?取決於你的邏輯。 – Tak 2014-09-05 18:20:26
@t_m,使用案例不會做很多好事,因爲它會產生相同數量和質量的代碼。 – zhulien 2014-09-09 08:29:24