- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将地址(Line1、Line2、Line3、城市、州、邮政编码)转换为没有空行且城市、州和邮政编码串联的邮寄地址(Addr1、Addr2、Addr3、Addr4)一起在一条线上。有一个函数可以做到这一点会非常好。
即
第1行=
Line2=123 某处
第3行=
城市=底特律
州=MI
zip =48000
这是传入地址的表结构:
IF OBJECT_ID('tempdb..#Employee') IS NOT NULL DROP TABLE #Employee
CREATE TABLE #Employee (Line1 VARCHAR(30), Line2 VARCHAR(30), Line3 VARCHAR(30),
City VARCHAR(17), State VARCHAR(2), ZIP VARCHAR(10))
GO
INSERT #Employee VALUES ('', '123 Somewhere', '', 'Detroit', 'MI', '48000')
SELECT * FROM #Employee
生成的邮寄地址
Addr1=123 某处
地址2=底特律 MI 48000
地址3=
地址4=
或一个带有cr字符的字段
地址=
123 某处cr
底特律 MI 48000 cr
cr
cr
一个函数最好能返回 Addr1、Addr2、Addr3 和 Addr4 或仅返回带有 的 Addr。
SqueezeAddress(线路 1、线路 2、线路 3、城市、州、邮政编码)
然后 SqueezeAddress 将返回 Addr1、Addr2、Addr3、Addr4
或
添加 cr 的地址
所有 Addr1-4 行都将为 VARCHAR (40),或者如果使用一个字段,则为 Addr VARCHAR (200)
根据 Phil 在下面评论中的请求,以下是当前正在使用的逻辑(删除了许多字段以使其更易于阅读):
SELECT Line1, Line2, Line3,
ISNULL(LTRIM(RTRIM(ADDR.City)) + ', ','') + ISNULL(ADDR.RegionCode,'')
+ ' ' + ISNULL(ADDR.PostalCode,'') AS Line4,
UPDATE #tmpBilling
SET Line1 = Line2, Line2 = NULL
WHERE ISNULL(Line1, '') = ''
AND ISNULL(Line2, '') <> ''
UPDATE #tmpBilling
SET Line2 = Line3, Line3 = NULL
WHERE ISNULL(Line2, '') = ''
AND ISNULL(Line3, '') <> ''
UPDATE #tmpBilling
SET Line2 = Line4, Line4 = NULL
WHERE ISNULL(Line2, '') = ''
AND ISNULL(Line4, '') <> ''
UPDATE #tmpBilling
SET Line3 = Line4, Line4 = NULL
WHERE ISNULL(Line3, '') = ''
AND ISNULL(Line2, '') <> ''
最佳答案
我可能在这里遗漏了一些东西,但如果这只是简单的字符串连接,那么这会起作用......
设置测试数据(我添加了更多示例)
IF OBJECT_ID('tempdb..#Employee') IS NOT NULL DROP TABLE #Employee
CREATE TABLE #Employee (Line1 VARCHAR(30), Line2 VARCHAR(30), Line3 VARCHAR(30),
City VARCHAR(17), State VARCHAR(2), ZIP VARCHAR(10))
GO
INSERT #Employee VALUES ('', '123 Somewhere', '', 'Detroit', 'MI', '48001')
INSERT #Employee VALUES ('123 Somewhere', 'Suite 500', '', 'Detroit', 'MI', '48002')
INSERT #Employee VALUES ('123 Somewhere', 'Suite 500', 'attn: JP', 'Detroit', 'MI', '48003')
SELECT * FROM #Employee
从这里开始,您所要做的就是将字符串缝合在一起。此版本假定您有空值和空字符串可供分解。
SELECT
isnull(nullif(Line1, '') + char(13) + char(10), '')
+ isnull(nullif(Line2, '') + char(13) + char(10), '')
+ isnull(nullif(Line3, '') + char(13) + char(10), '')
+ City + ' ' + State + ' ' + ZIP
+ char(13) + char(10) + '------------------------------'
from #Employee
将其包装到一个函数中:
CREATE FUNCTION dbo.SqueezeAddress
(
@Line1 varchar(30)
,@Line2 varchar(30)
,@Line3 varchar(30)
,@City varchar(17)
,@State varchar(2)
,@Zip varchar(10)
)
RETURNS varchar(200)
AS
BEGIN
RETURN isnull(nullif(@Line1, '') + char(13) + char(10), '')
+ isnull(nullif(@Line2, '') + char(13) + char(10), '')
+ isnull(nullif(@Line3, '') + char(13) + char(10), '')
+ @City + ' ' + @State + ' ' + @ZIP
+ char(13) + char(10) + '------------------------------'
END
GO
最后,将函数放入查询中:
SELECT dbo.SqueezeAddress(Line1, Line2, Line3, City, State, Zip)
from #Employee
关于sql-server - TSQL 将地址转换为邮寄地址 - SQL Server 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403076/
我有一个简单的 post 表单,将数据从一个页面发送到另一个页面,但是当我按下提交时,process.php 说没有输入用户名和密码。我觉得我错过了一些非常明显的东西。我在这里做错了什么? 登录.ph
当过去 24 小时重复填写某个值时,我试图让自己在每晚 0:01 使用 cronjob 发送一封电子邮件。 到目前为止我所拥有的是: $query = "SELECT id, detection.nu
我想使用 JSP 发送 HTML 文件。但问题是.. 1) 当我们开发任何 HTML 文件时,我们都会提到一些 CSS 和 JavaScript 文件。 2) 因此,当我发送文件时,它缺少我在其他页面
有人可以指出我在这里做错了什么吗?在 W3c 验证器上我得到这个错误: Line 104, Column 43: Bad value mailto:?subject=Test&body=I found
我必须向 api 端点发出 post 请求,但我收到错误状态 500。 name: "HttpErrorResponse" ok: false status: 500 statusText: "Int
我必须用 Ruby 编写一个电子邮件导入程序,我偶然发现了 Ruby 1.9 的非常漂亮的 Mail gem。我知道如何遍历未读消息,但我不知道如何将它们标记为已读(文档很详尽,但我真的不知道要注意什
虽然有很多相同的问题,但没有一个解决方案对我有用。仅当有只有一个 收件人时才会发送邮件,否则会生成以下错误。此外,我只发送内部电子邮件,不发送外部电子邮件。 有什么想法吗? 代码: $to = 'on
使用 JavaMail API 和 IMAP,我想知道邮件已从文件夹 a 移动到 b。我怎样才能在不添加听众的情况下做到这一点?我的意思是我想在登录帐户并打开文件夹时发现消息的变化。 问题是,如果文件
今天只是一个接一个的问题。我刚刚部署到我的生产服务器并对其进行测试,每当涉及电子邮件时都会出现问题。特别是对于 Devise 的可确认注册电子邮件,每当我注册一个帐户时,日志中都会抛出以下错误...
我是一名优秀的程序员,十分优秀!