我正在使用SQL Server 2005.我试图在一个合并两行。SQL将两行合并为一个
需要帮助排除标识号和ApprovalCode NULL值。
SELECT DISTINCT CASE
WHEN (CONVERT(varchar(12), t1.referenceInfo)) like '1000%' THEN
(+ '"') + RTRIM(CONVERT(varchar(12), t1.referenceInfo)) + '"'
ELSE
'0'
END AS [ identity number ],
CASE
WHEN LEN(ISNUMERIC(CONVERT(varchar(12), t2.referenceInfo))) < 12 THEN
(+ '"') + RTRIM(CONVERT(varchar(12), t2.referenceInfo)) + '"'
WHEN (CONVERT(varchar(12), t2.referenceInfo)) LIKE '10%' THEN
(+ '"') + RTRIM(CONVERT(varchar(12), t2.referenceInfo)) + '"'
ELSE
'0'
END AS approvalcode
FROM dbo.GUEST_CHECK_LINE_ITEM_HIST t1
INNER JOIN dbo.GUEST_CHECK_LINE_ITEM_HIST t2
ON t1.guestCheckID = t2.guestCheckID
WHERE t1.guestCheckID = 78362401
AND (t1.referenceInfo) LIKE '1000%'
and (t2.referenceInfo) NOT LIKE '1000%'
--AND LEN(ISNUMERIC(CONVERT(varchar(12), t2.referenceInfo))) < 12
GROUP BY t1.referenceInfo, t2.referenceInfo
参考表如下 http://postimg.org/image/45q41bogf/
我想停放值等在身份号码10000%和公园,小于12个数字的核准代码的值。如果批准代码少于12位,则为空。
感激,如果能帮助我在这
结果 http://postimg.org/image/ngr9yzb6z/
我编辑了这个问题。请帮助家伙。我需要在身份字段中以1000XXX开头的所有数字,并以10XXXX的批准代码开头。并且在批准代码中没有任何以10返回null的数字开始。 – alexcctan