我在使用mssql
组合两列时遇到问题表1格式:
|| WJCPrefix || WJCNo ||
|| UK-R/SWJC/14/ || 1234 ||
|| UK-R/CUWJC/14/ || 2345 ||
|| UK-R/CUWJC/14/ || 3456 ||
|| UK-R/SWJC/14/ || 4567 ||
|| UK-R/CUWJC/14/ || 5678 ||
期望的是:
UK-R / CUWJC /3456分之14
UK-R / CUWJC / 14/5678
我正在使用的sql语句是:
SELECT tblWJCItem.AddedDescription, concat(tblWJC.WJCPrefix, tblWJC.WJCNo) AS OurRef
FROM tblWJC
INNER JOIN tblWJCItem ON tblWJC.WJCID = tblWJCItem.WJCID;
我也用过:
SELECT tblWJCItem.AddedDescription, tblWJC.WJCPrefix + '' + tblWJC.WJCNo AS OurRef
FROM tblWJC
INNER JOIN tblWJCItem ON tblWJC.WJCID = tblWJCItem.WJCID;
我似乎无法连接这两个列,任何人都可以指出我在这里做错了什么?
由于
答案 0 :(得分:0)
您的第一个查询应该没问题。但你可以试试:
SELECT tblWJCItem.AddedDescription, tblWJC.Prefix + cast(tblWJC.WJCNo as varchar(255)) AS OurRef
FROM tblWJC INNER JOIN
tblWJCItem
ON tblWJC.WJCID = tblWJCItem.WJCID;
如果WJCno
是数字而不是字符串,则第二个版本可能会出错。
答案 1 :(得分:0)
如果您使用的是SQL Server 2012或更高版本,那么您的第一个查询(Concat()
函数)应该可以正常工作。
对于其他版本,您可能需要Convert()
/ Cast()
WJCNo
为字符串类型
SELECT t2.AddedDescription,
t1.WJCPrefix + CONVERT(Varchar(10),t1.WJCNo) AS OurRef
FROM tblWJC t1
INNER JOIN tblWJCItem t2 ON t1.WJCID = t2.WJCID;
答案 2 :(得分:0)
我认为WJCNo
是数字或int字段所以首先将此字段转换为Varchar然后连接: -
SELECT tblWJCItem.AddedDescription,
tblWJC.WJCPrefix + '' + CONVERT(Varchar(10),tblWJC.WJCNo) AS OurRef
FROM tblWJC
INNER JOIN tblWJCItem ON tblWJC.WJCID = tblWJCItem.WJCID;