有人可以解釋我如何在我的方案中爲列「名稱」添加前綴。爲SQL結果添加前綴
我想在兩個相同的表之間創建UNION。 兩者均包含「名稱」字段。在列名稱中,我想添加前綴「TABLE-A-」或「TABLE-B-」。
我知道我可以通過N'PREFIX' + Name
做到這一點在選擇,但問題是,一些記錄已經有前綴和一些不要。所以通過使用這將創建這些記錄的雙前綴...
任何想法?
有人可以解釋我如何在我的方案中爲列「名稱」添加前綴。爲SQL結果添加前綴
我想在兩個相同的表之間創建UNION。 兩者均包含「名稱」字段。在列名稱中,我想添加前綴「TABLE-A-」或「TABLE-B-」。
我知道我可以通過N'PREFIX' + Name
做到這一點在選擇,但問題是,一些記錄已經有前綴和一些不要。所以通過使用這將創建這些記錄的雙前綴...
任何想法?
您可以使用CASE表達式:
CASE WHEN col1 LIKE 'TABLE-A-%' THEN col1 ELSE 'TABLE-A-' || col1 END
另外,還可以使用4個選擇UNION:
select col1 FROM tab1 WHERE col1 LIKE 'TABLE-A-%'
UNION
select 'TABLE-A-' || col1 FROM tab1 WHERE col1 NOT LIKE 'TABLE-A-%'
UNION
<same stuff for table B>
感謝您的解析器,與我接受的解析器類似 – no9
SELECT 'TABLE-A'+REPLACE(Name,'TABLE-A','')
FROM [TABLE-A]
UNION ALL
SELECT 'TABLE-B'+REPLACE(Name,'TABLE-B','')
FROM [TABLE-B]
拉吉
這當然會刪除全部字符串中使用的所有前綴**。 –
感謝您的支持者 – no9
的COUNTRYCODE
UPDATE [masters].[country] SET Countrycode = '+' +Countrycode
output:
===========
countrycode
+91,
+355,
....
請參閱問題中的第3段。作者需要有條件地添加''+''。這是問題的癥結,它不包含在你的答案中。 :( – Barett
我聞到腥數據庫設計前添加一個「+」號......但我想:要麼更換一無所有現有值,只是你的前綴添加到所有他們或工作與CASE表達式 – Najzero
Najzero,我沒有選擇。我被整合到這個糟糕的數據庫中,他們在沒有通知我的情況下執行了大規模的更改... – no9
出於好奇。是否會破壞任何簡單的更新所有行(又名剝離/修復具有添加的前綴的所有條目),然後再次將其添加到視圖/控制器中。 CASE肯定會起作用,但這只是一種解決方法,當您必須將前綴添加到某些但不是全部時,數據似乎「已損壞」,因爲已將該前綴存儲到數據本身 – Najzero