JBTALKS.CC

标题: 自動生成的號碼 加開頭 字母 SQL 搞定 [打印本页]

作者: goodday    时间: 2010-5-6 11:09 PM
标题: 自動生成的號碼 加開頭 字母 SQL 搞定
記得有人問過

P001
P002
P003

EST001
EST002
EST003

自動生成的號碼  加開頭 字母 SQL 搞定
  1. select 'p'+ convert(nvarchar,ProductIDN) as ss from Products
复制代码
mssql 罷了 mysql 我沒試過
作者: goodday    时间: 2010-5-7 12:05 AM
去字
SELECT (substring(PurchaseOrderCode,4,10))   
  FROM [tblPurchase]

PO0001 變 0001

nvarchar = 2 byte

呵呵
作者: Super-Tomato    时间: 2010-5-7 12:17 AM
本帖最后由 Super-Tomato 于 2010-5-7 12:20 AM 编辑
記得有人問過

P001
P002
P003

EST001
EST002
EST003

自動生成的號碼  加開頭 字母 SQL 搞定
  1. select 'p'+ convert(nvarchar,ProductIDN) as ss from Products
复制代码
复制代码
mssql 罷了 mysql 我沒試過
goodday 发表于 2010-5-6 11:09 PM


mysql 则是

  1. SELECT CONCAT('p', LPAD(ProductIDN, 3, '0')) AS ss FROM Products
复制代码




去字
SELECT (substring(PurchaseOrderCode,4,10))   
  FROM [tblPurchase]

PO0001 變 0001

nvar ...
goodday 发表于 2010-5-7 12:05 AM


mysql (用 RIGHT 簡單些)

SELECT RIGHT(PurchaseOrderCode,4) FROM [tblPurchase]
作者: goodday    时间: 2010-5-8 08:24 PM
番茄 mysql 好像容易很多
作者: Super-Tomato    时间: 2010-5-8 10:17 PM
本帖最后由 Super-Tomato 于 2010-5-8 10:25 PM 编辑
番茄 mysql 好像容易很多
goodday 发表于 2010-5-8 08:24 PM


會嗎?? 我感覺上差不多, 只是 MSSQL 要把數字轉換為文字這個步驟方式不一樣

不過 MSSQL 應該是有這樣的做法吧

CREATE TABLE test(
    ID    INT    IDENTITY(1,1)    PRIMARY KEY,
    PID   AS 'P' + RIGHT('000' + CAST(ID AS VARCHAR), 3)
)
作者: fyhao    时间: 2010-5-12 07:12 PM
用Function就能搞定了,真没想过。。。
作者: 宅男-兜着走    时间: 2010-5-12 11:20 PM
如果是Linq 的话要怎样?
还是 String Fomat 就收工了?




欢迎光临 JBTALKS.CC (https://www.jbtalks.cc/) Powered by Discuz! X2.5