我列的例子:爲什麼我的代碼不起作用? (使用多表情+投+案例)
(name) as varchar(50)
s01
s02
s16
我想選擇0以上第一遺漏panelname也使用情況和投(在我的例子需要,選擇將「S03」)
WITH cte AS(
SELECT name
FROM customers
UNION ALL
SELECT 0
)
SELECT CASE WHEN cast(min(right(name, 2) + 1) as varchar(50)) < 10 THEN 's0' ELSE 's' END +
cast(min(right(name, 2) + 1) as varchar(50))
FROM cte
WHERE NOT EXISTS (
SELECT name
FROM customers
WHERE cast(right(customers.name, 2) as varchar(50)) = cast(right(cte.name, 2) as varchar(50))+1)
此代碼的工作原理,但只在我的表爲空或表只包含數字的情況下。
比如我的名字 - 列>的結果將是S03
1 or 101
2 102
16 116
但是,當它包含信
example my columns in name
s01
s02
s016
它不工作。我得到一個錯誤:將varchar值's01'轉換爲數據類型int時轉換失敗。我應該把其他地方投到varchar?
有什麼建議嗎?或者更好地使用其他代碼來實現我想要做的事情? – user6615498
請編輯您的問題以包含相關的表格DDL和樣本數據作爲DML。 –
我編輯我的問題更具體。有什麼建議麼? – user6615498