我正在尝试使用两列的连接值来显示数据。我首先测试在查询中执行此操作的方法,然后在存储过程中实际使用它,但我只是没有得到任何结果。 所以我有一个名为Person的表:
CREATE TABLE Person
(
IDNumber char(13) NOT NULL,
Name varchar(MAX) NOT NULL,
Surname varchar(MAX) NOT NULL,
Age int NOT NULL,
PRIMARY KEY (IDNumber)
)
如果Name和Surname的连接值等于'Harriet West',我想显示所有可用的数据,但我不知道如何做到这一点。任何人都可以通过解释如何做到这一点来帮忙吗?
答案 0 :(得分:2)
您需要一个计算列,例如:
CREATE TABLE Person (
IDNumber char(13) NOT NULL,
Name varchar(MAX) NOT NULL,
Surname varchar(MAX) NOT NULL,
Age int NOT NULL,
Fullname AS Name + ' ' + Surname,
PRIMARY KEY (IDNumber)
)
实施例
INSERT INTO Person (IDNumber, Name, Surname, Age)
VALUES ('1', 'Bob', 'Smith', 10);
然后,您可以查询计算列:
SELECT [column list] FROM Person WHERE Fullname = 'Bob Smith';
结果
| IDNUMBER | NAME | SURNAME | AGE | FULLNAME | |---------------|------|---------|-----|-----------| | 1 | Bob | Smith | 10 | Bob Smith |
其他一些想法:
IDNumber
一个字符串数据类型似乎很愚蠢;也许称之为别的什么?varchar(max)
作为名称列吗?答案 1 :(得分:1)
我喜欢计算列方法,但如果你不想要它,你可以在查询中做到:
SELECT IDNumber, Name, Surname, Name + ' ' + Surname [Full Name], Age
FROM Person
如果您想通过全名查询,可以这样做:
SELECT IDNumber, Name, Surname, Age
FROM Person
WHERE Name + ' ' + Surname = 'Harriet West'
答案 2 :(得分:0)
在where子句......
Select * from Person
Where SurName + ' ' + Name = 'Harriet West'
如果SurName或Name可能为Null,请务必将concat_null_yields_null设置为Off。