我想更新一個格式如下的行ABC - DEF - GHI - ABD
,
使用像這樣的cmd UPDATE tbl SET col = Replace(col,@var, '') WHERE Pk=something.
如何刪除尾隨或前導連字符?例如,如果@var是GHI,在替換之後,行值應該是ABC-DEF-ABD或者如果@var是ABC,則值應該是DEF -GHI-ABD。替換爲TSql
Q
替換爲TSql
0
A
回答
0
首先,完全註釋同意上述..更改德數據sschema到數值所限定的名單沒有存儲在數據庫列。
但是,如果這是不可能的,試試這個:
Update Table Set
colName = Replace(Replace(colName, '- ' + @var, ''), @var + ' -', '')
Where pk = @pk
0
如何:
UPDATE tbl SET col = replace(replace(col, @var + ' – ', ''), ' – ' + @var, '')
內替換替換所有中層和「領導」的情況下,與外部替換捕獲所有「最終」的實例。
如果存在單個實例, GHI
,增加進一步的和最外面的呼叫:
UPDATE tbl SET col = replace(replace(replace(col, @var + ' – ', ''), ' – ' + @var, ''), @var, '')
2
添加一個額外的 - 到字符串的結尾,有追加,然後去掉尾隨破折號替換@var「」「 - 」當你完成。
UPDATE tbl
SET col = LEFT(REPLACE(col + ' - ', @var+' - ', ''), LEN(col)-6)
WHERE Pk = something
0
您可以使用:
-- 1: replace(col,@var, '') => your replacement
-- 2: replace(#1, ' - ', '-') => remove spaces
-- 3: replace(#2, '- ', '') => remove first hyphen and space
-- 4: replace(#3, ' -', '') => remove last hyphen and space
UPDATE tbl
SET col = replace(replace(replace(replace(col,@var, ''), ' - ', '-'), '- ', ''), ' -', '')
WHERE Pk=something
相關問題
- 1. TSQL替換爲長度約束
- 2. TSQL加入替換工會
- 3. TSQL替換使用子串替換替換字符串的其他部分
- 4. tsql:如何做一個子串替換?
- 5. TSQL:替換比ltrim/rtrim更好
- 6. TSQL的數據替換空字段
- 7. 替代TSQL
- 8. 如何修改TSQL替換表格函數爲我的情況?
- 9. TSQL將DateOffset轉換爲UTC
- 10. TSQL轉換爲LINQ轉換參考?
- 11. 如何編寫TSQL替換函數來替換第一個表達式?
- 12. TSQL GETDATE轉換
- 13. 在tsql中將varchar轉換爲datetime
- 14. TSQL:錯誤而轉換timestap爲整數
- 15. 如何將此從TSQL轉換爲MYSQL?
- 16. 可以TSQL從布爾轉換爲BIT
- 17. 將Oracle代碼轉換爲TSQL
- 18. 轉換PLSQL函數成爲TSQL
- 19. 將DAX開關邏輯轉換爲TSQL
- 20. 需要DB2查詢轉換爲TSQL
- 21. 將查詢從Oracle轉換爲TSQL
- 22. tsql強制轉換爲金錢
- 23. 將PL/SQL腳本轉換爲TSQL
- 24. 將TSQL查詢轉換爲訪問
- 25. 將TSQL查詢轉換爲LINQ
- 26. 在TSQL中將JSON轉換爲XML?
- 27. TSQL:將varchar'dd/mm/yy'轉換爲DATETIME
- 28. 將TSQL轉換爲MS-Access SQL
- 29. 將光標從PLSQL轉換爲TSQL
- 30. 將mySQL觸發器轉換爲TSQL
這裏製作一個假設,但不分隔列表存儲在數據庫中。相反,使用一對多結點表,這是一個簡單的'delete'語句。 –
不幸的是,這不是我的電話。我們確實有一對多的關係表,這個列僅用於顯示目的。 – user424134