如果 id 是奇數,我想將產品名稱與“-v2”連接起來
CREATE TABLE PRODUSE (
IdProdus int PRIMARY KEY IDENTITY,
Denumire varchar(36) NOT NULL,
IdCateg int NOT NULL
)
GO
SELECT IdProdus, Denumire,IIF(IdProdus%2=1, concat(Denumire, '-v2'), 0)
from PRODUSE;
錯誤就像
將 varchar 值 'Cablu USB-USB, 0.5m-v2' 轉換為資料型別 int 時轉換失敗。
'Cablu USB-USB, 0.5m' 是表中的第一個名稱。
uj5u.com熱心網友回復:
您的行內 IF 回傳兩種不同的資料型別-尚不清楚您的意圖是什么,但無論哪種方式您都不應該回傳0,請嘗試使用空白字串或未修改的列:
Iif(IdProdus % 2 = 1, concat(Denumire, '-v2'), Denumire)
uj5u.com熱心網友回復:
那是因為如果您的 IIF 條件不滿足,在這種情況下您將回傳 0。在這種情況下,您應該回傳列值。
這是一個例子 -
SELECT IdProdus, Denumire,IIF(IdProdus%2=1, concat(Denumire, '-v2'), Denumire)
from PRODUSE;
uj5u.com熱心網友回復:
- number % 2,如果它產生除 0 以外的任何東西,那么它是一個奇數
- concat 函式加入
Denumire字串-v2
select
*,
case when IdProdus % 2 = 1 then concat(Denumire, "-v2") else Denumire end as new_name
from PRODUSE
如果您的 SQL 支持 IFF() 函式,那么您也可以使用它:
select
*,
IFF(IdProdus % 2 = 1, concat(Denumire, "-v2"), Denumire) as new_name
from PRODUSE
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525807.html
標籤:sqlsql服务器
