[英]Insert query in SQL Server 2005
我的SQL Server表结构为:
BranchName
BranchManagerName
Address
Zip Info
PhoneNo
FaxNo
Email
Status
CreatedOn
现在,我尝试将诸如State=XXXX
, city=YYYY
, Zip=123
Zip Info
列的值作为三个值传递。
我需要以这种格式state,city-Zip
(SQL表中的state,city-Zip
( xxxx,yyyy-123
))存储在Zip Info
列中的这三个值( State,City,Zip
)。
如何在SQL Server 2005中编写插入查询?
不,不,不,不!
不要做! 将它们另存为单独的列。 切勿在单个列中存储多个字段!
尝试为State='NY'
选择所有行时会遇到问题,您需要在其中不断进行字符串操作并进行缓慢的非索引搜索。
将它们存储为单独的列,并在显示它们时将它们串联起来。
SELECT
ISNULL(State,'')+ISNULL(', '+city,'')+ISNULL('-'+Zip,'') AS ZipInfo
FROM YourTable
您总是可以在插入中连接字符串:
INSERT INTO YourTable
(col1, col2, col3, Col123)
VALUES
(@col1, @col2, @col3, @col1+', '+@col2+'-'+@col3)
您的“空保护”将根据需要而有所不同,在SELECT中,我假设您可能具有NULL值,在INSERT中,我假设将没有NULL值。
如果将它们存储为3列,并且如果您确实希望将它们作为单个字段存储,则创建视图或计算列会更好。 您正试图通过将值存储在一起来解决常见的不良设计问题。
另外,请勿在列名称中添加空格,除非[您喜欢]在[整个地方]都带有[花括号]。
我同意@KM。 您不应将此数据存储在同一字段中。 如果将“邮政编码信息”数据存储在同一字段中,则在搜索数据时会遇到很大的问题,因此不要这样做。
但是,如果必须这样做,您将具有类似于以下内容的插入内容:
INSERT INTO yourTable
(
BranchName
, BranchManagerName
, Address
,[Zip Info]
,PhoneNo
, FaxNo
, Email
,Status
, CreatedOn
)
SELECT BranchName
, BranchManagerName
, Address
,State + ', ' + City + '-' + Zip
,PhoneNo
, FaxNo
, Email
,Status
, CreatedOn
兄弟,如果您想以state格式添加值,则zip_info字段的city-Zip以及state,city和zip的值如下所示XXX,YYYY,123您只需将以下三个格式的所有值都放在Zip_Info在insert语句中的位置
'XXX,YYYY-123'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.