我正在做一份SQL类入门的作业,并且在正确输出某些信息方面遇到了麻烦。
CREATE TABLE PRODUCT(
ProductID CHAR(5) NOT NULL,
ProductName CHAR(20) NOT NULL,
ProductPrice MONEY NOT NULL,
VendorID CHAR(5) NOT NULL,
CategoryID CHAR(5) NOT NULL,
CONSTRAINT Product_PK PRIMARY KEY (ProductID),
CONSTRAINT Product_FK1 FOREIGN KEY (VendorID)
REFERENCES VENDOR(VendorID),
CONSTRAINT Product_FK2 FOREIGN KEY (CategoryID)
REFERENCES CATEGORY(CategoryID)
);
INSERT INTO PRODUCT
VALUES
('1X1', 'Zzz Bag', '$100', 'PG', 'CP'),
('2X2', 'Easy Boot', '$70', 'MK', 'FW'),
('3X3', 'Cosy Sock', '$15', 'MK', 'FW'),
('4X4', 'Dura Boot', '$90', 'PG', 'FW'),
('5X5', 'Tiny Tent', '$150', 'MK', 'CP'),
('6X6', 'Biggy Tent', '$250', 'MK', 'CP')
;
我已经写出了上面的代码,但是当我运行select查询:
SELECT *
FROM PRODUCT;
我得到的输出是:
1X1 Zzz Bag 100.00 PG CP
2X2 Easy Boot 70.00 MK FW
3X3 Cosy Sock 15.00 MK FW
4X4 Dura Boot 90.00 PG FW
5X5 Tiny Tent 150.00 MK CP
6X6 Biggy Tent 250.00 MK CP
和我希望得到
1X1 Zzz Bag $100.00 PG CP
2X2 Easy Boot $70.00 MK FW
3X3 Cosy Sock $15.00 MK FW
4X4 Dura Boot $90.00 PG FW
5X5 Tiny Tent $150.00 MK CP
6X6 Biggy Tent $250.00 MK CP
可以看到$由于某种原因没有出现。如有任何帮助,不胜感激。
您可以使用format(value, 'C'):
https://learn.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-ver16https://learn.microsoft.com/en-us/dotnet/standard/base-types/formatting-types
对于计算机来说,将数值存储为二进制值比存储为字符串要高效得多。例如,我们读取"100",但在计算机中,它被存储和处理为000000001100100这样的值。注意,在这里,"高效"的意思是"非常快",速度=时间=金钱。特别是当你谈论大容量事务(#/millisecond, #/transaction)时。
:
- 当一个应用程序从数据库中读取一个值要显示给用户时,它必须以用户可以理解的形式格式化该值。这不会改变在计算机内存中存储和处理的值,它只是改变了它在屏幕上的显示方式/打印收据/其他。
- 然而,要处理或存储一个值,必须以一种(有效的!)在数据库中存储、读取和处理的格式来完成。
这里的重点是,数据库负责存储值,并且只负责存储值。您需要正确配置您的应用程序以获得所需的演示格式,使用$(或£或¥),以及适当的标点符号(1000000 vs. 1,000,000 vs. 1,000.000,00 vs.……无论用户喜欢看到什么)。