检查sql视图中的特殊字符
嗨,我在修复一个特定的场景,我有一个视图,它是通过连接多个表创建的,要求是我必须找到该视图中的列是否将返回特殊字符检查sql视图中的特殊字符,sql,sql-server,sql-view,Sql,Sql Server,Sql View,嗨,我在修复一个特定的场景,我有一个视图,它是通过连接多个表创建的,要求是我必须找到该视图中的列是否将返回特殊字符 SELECT SI.ShipmentId, CASE WHEN SA.AddressType = 1 THEN 'SH' ELSE 'CN' END AS AddressType, SI.Pieces, SI.PalletCount, SI.Weight, SI.
SELECT SI.ShipmentId,
CASE
WHEN SA.AddressType = 1 THEN 'SH'
ELSE 'CN'
END AS AddressType,
SI.Pieces,
SI.PalletCount,
SI.Weight,
SI.UserDescription,
SI.Class,
SA.CompanyName,
SA.Street,
SA.City,
SA.State,
SA.ZipCode,
CASE
WHEN SA.Country = 1 THEN 'USA'
WHEN SA.Country = 2 THEN 'CANADA'
END AS Country,
SA.ContactPerson,
Cast(Replace(Replace(Replace(Replace(SA.Phone, ')', ''), '(', ''), '-', ''), ' ', '') AS VARCHAR(25)) AS Phone,
S.PoNo,
S.EstimatedDueDate,
Cast(S.ShipmentReadyTime AS VARCHAR(10)) AS ShipmentReadyTime,
Cast(S.ShipmentCloseTime AS VARCHAR(10)) AS ShipmentCloseTime,
B.BOLNumber,
S.HazMatEmergencyNo
FROM CarrierRate.Shipment AS S
INNER JOIN CarrierRate.BOL AS B
ON B.ShipmentId = S.ID
INNER JOIN CarrierRate.ShipmentItems AS SI
ON SI.ShipmentId = S.ID
INNER JOIN CarrierRate.ShipmentAddresses AS SA
ON SA.ShipmentId = S.ID
INNER JOIN CarrierRate.Carriers AS C
ON C.ID = S.CarrierId
WHERE ( SI.AccessorialId = 1 )
AND ( SA.AddressType IN ( 1, 2 ) )
这就是那个视图,我只想知道所有的列都有什么特殊的字符作为它的数据。
例如:我有SA.CompanyName
作为列之一,我必须检查该列是否可以用特殊字符填充?
请告诉我可能的解决方案,我不知道。您需要查看表/列/表达式的列类型,它们构成您感兴趣的视图的列。假设它们被定义为某种形式的
text
或varchar
,则它们可以包含特殊字符,除非这些列/表上存在某种形式的约束。您具体检查哪些特殊字符?@Akash:特殊字符,如“!@#*&%”你的问题仍然模棱两可。你是说永远?或者使用您当前表中的数据?@DwayneTowell:这是一个很好的问题,我想检查一下。您使用的是哪种数据库管理系统?博士后?Oracle?但是如何从查询中单独检查,以及如何停止列获取这些特殊字符?您必须提供表定义。