gpt4 book ai didi

sql - 用列中最长数据的长度设置子串长度

转载 作者:行者123 更新时间:2023-12-04 20:46:42 26 4
gpt4 key购买 nike

我正在做一个子字符串来获取与某个费用代码匹配的所有电子邮件地址。因为我事先不知道最大长度是多少,所以我总是使用太大的 int,我想知道它是否会影响查询的性能。

我需要的是获取具有最长 EmployeeEmails 数据的行的长度,并用它设置 @MAXINT

DECLARE @MAXINT INT = 2147483646

SELECT
JOB.JOBNUMBER AS ExpenseCode,
substring(
(
Select ',' + LOWER(EMP.ELECTRONICMAILADDRESS) AS [text()]
From dbo.EMPLOYEE EMP
INNER JOIN ITEM on ITEM.ACCESSLEVELNAME = JOB.ACCESSLEVELNAME
Where LOWER(EMP.NAME2 + '.' + EMP.NAME3) Collate SQL_Latin1_General_CP1253_CI_AI = ITEM.NAMEOFUSER
AND GETDATE() < CASE WHEN EMP.DATEENDEMPLOYMENT = '' THEN '2099-01-01' ELSE EMP.DATEENDEMPLOYMENT END
ORDER BY EMP.ROWID
For XML PATH ('')
), 2, @MAXINT) EmployeeEmails
FROM JOB
ORDER BY JOB.JOBNUMBER

最佳答案

不要使用 SUBSTRING 使用 STUFF。所以代替表达式:

SUBSTRING((SELECT...),2,2147483646)

做:

STUFF((SELECT...),1,1,'')

STUFF 通常用于从字符串 ionic SQL Server 中去除第一个字符。

关于sql - 用列中最长数据的长度设置子串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50003769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com