0
我有一个这样的查询转换的Varchar在一个子查询
DECLARE @patientId INT
SET @patientId = 0
IF EXISTS(SELECT TOP 1 SUBSTRING(TRN02, 1, CHARINDEX('-', TRN02) - 1)
FROM EDI_X12.dbo.X12_TRN
WHERE X12_Interchange_GUID = 'd6803485-3f46-485c-8288-2cfc98ec7088'
AND TRN02 LIKE '%-%'))
BEGIN
SET @patientId = (SELECT TOP 1 SUBSTRING(TRN02, 1, CHARINDEX('-', TRN02) - 1)
FROM EDI_X12.dbo.X12_TRN
WHERE X12_Interchange_GUID = @px12_interchange_guid
AND TRN02 LIKE '%-%')
END
为TRN02
值有些事情是112345-6458PT
这里'6457PT'
到int是patientID
列被定义为INT 以及如何转换为varchar到int在这个特定的查询?
我要救 '6457PT' 为INT场patientid
在此先感谢
纳文
它是从'112345-6458PT',你想提取'6458'? – Unnie
你不需要'EXISTS'检查。只需使用'SELECT TOP 1 @patientId = SUBSTRING'。如果没有行匹配,则不进行分配。另外为什么没有'ORDER BY'? –