org_name长度大于等于10。截取6,8
小于10且大于5,截取2,3
select*form lose_pub_org
SELECT
CASE
WHEN LEN(org_name) >= 10 THEN SUBSTRING(org_name, 2, 3)
WHEN LEN(org_name) > 5 AND LEN(org_name) < 10 THEN SUBSTRING(org_name, 2, 2)
END AS ORGNM
FROM 你的表名
【以下回答由 GPT 生成】
下面是我提供的SQL代码,用于实现上述需求:
-- 当org_name的长度大于等于10时,截取该字符串的第6到第8个字符
SELECT
CASE
WHEN LEN(org_name) >= 10 THEN SUBSTRING(org_name, 6, 3)
ELSE org_name
END AS org_name_trimmed
FROM lose_pub_org
-- 当org_name的长度小于10且大于5时,截取该字符串的第2到第3个字符
SELECT
CASE
WHEN LEN(org_name) > 5 AND LEN(org_name) < 10 THEN SUBSTRING(org_name, 2, 2)
ELSE org_name
END AS org_name_trimmed
FROM lose_pub_org
上述代码使用了SQL Server内置的函数LEN
来获取字符串的长度,并使用SUBSTRING
函数来截取字符串的指定部分。默认情况下,SUBSTRING
函数的第一个参数是要截取的字符串,第二个参数是要截取的起始位置,第三个参数是要截取的长度。根据需求,我使用了CASE
语句来根据字符串长度的不同进行不同的截取操作。