繁体   English   中英

在SQL Server 2005中插入查询

[英]Insert query in SQL Server 2005

我的SQL Server表结构为:

BranchName
BranchManagerName
Address
Zip Info
PhoneNo
FaxNo
Email
Status
CreatedOn

现在,我尝试将诸如State=XXXXcity=YYYYZip=123 Zip Info列的值作为三个值传递。

我需要以这种格式state,city-Zip (SQL表中的state,city-Zipxxxx,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列,并且如果您确实希望将它们作为单个字段存储,则创建视图或计算列会更好。 您正试图通过将值存储在一起来解决常见的不良设计问题。

在这里寻找在SQL Server中拆分字符串的有趣方法!

另外,请勿在列名称中添加空格,除非[您喜欢]在[整个地方]都带有[花括号]。

我同意@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM